

コンピュータグラフィックスにおいて、ハイトマップまたはハイトフィールドは、主に二次標高モデリングにおける離散グローバルグリッドとして使用されるラスター画像です。各ピクセルには、 3Dコンピュータグラフィックスでの表示用に、表面標高データなどの値が格納されます。ハイトマップは、バンプマッピングでこの3Dデータがマテリアル内で影を生成する場所を計算したり、ディスプレイスメントマッピングでテクスチャ付き表面上の点の実際の幾何学的位置を変位させたり、地形においてハイトマップを3Dメッシュに変換したりするために使用できます。
ハイトマップには、サーフェスの「床」からの変位距離、つまり「高さ」として解釈される1つのチャンネルが含まれており、場合によってはグレースケール画像の輝度として視覚化されます。黒は最小高さ、白は最大高さを表します。マップをレンダリングする際、設計者は高さチャンネルの各単位の変位量を指定できます。これは画像の「コントラスト」に対応します。ハイトマップは、既存のグレースケール画像フォーマットに、専用のメタデータの有無にかかわらず、単独で保存することも、Daylon Leveller、 GenesisIV、Terragenドキュメントなどの専用ファイルフォーマットに保存することもできます。
個々のカラーチャンネルを利用することで、ディテールを向上させることもできます。たとえば、標準的な RGB 8 ビット画像では、256 のグレースケール値しか表示できないため、高さも 256 種類しか表現できません。カラーを使用することで、より多くの高さを表現できます (24 ビット画像の場合、256 3 = 16,777,216 種類の高さを表現できます (アルファチャンネルも使用する場合は 256 4 = 4,294,967,296 種類))。この手法は、広い範囲で高さがわずかに変化する場合に特に有効です。グレースケール値のみを使用すると、高さを 256 種類の値にマッピングする必要があるため、レンダリングされた地形は平坦に見え、特定の場所に「段差」が生じます。

標高図は地理情報システムで一般的に使用されており、そこではデジタル標高モデルと呼ばれています。
ハイトマップは、従来のペイントプログラムや専用の地形エディタを使用して手動で作成できます。これらのエディタは地形を 3D で視覚化し、ユーザーが表面を変更できるようにします。通常、地形を高くしたり、低くしたり、滑らかにしたり、侵食したりするツールがあります。地形を作成するもう 1 つの方法は、地形生成アルゴリズムを使用することです。これは、たとえば 2Dシンプレックスノイズ関数[ 1 ]または拡散制限集約[ 2 ]によるものです。もう 1 つの方法は、たとえば合成開口レーダーを使用して、実世界のデータからハイトマップを再構築する ことです[ 3 ]。
ハイトマップは、地形レンダリングソフトウェアや最新のビデオゲームで広く使用されています。ハイトマップは、デジタル地形の標高を保存するのに理想的な方法です。通常のポリゴンメッシュと比較して、同じ詳細度であれば必要なメモリ量が大幅に少なくて済みます。最新の3Dコンピュータモデリングプログラムのほとんどは、バンプマップ、ノーマルマップ、ディスプレイスメントマップなどの形式でハイトマップのデータを使用して、複雑な地形やその他の表面を迅速かつ正確に作成できます。
ソフトウェアレンダリングを用いた初期のゲームでは、要素はレイキャスティングでレンダリングされたボクセルの列の高さを表すことが多かった。最近のゲームのほとんどでは、要素はメッシュ内のポリゴンの高さ座標を表す。
ハイトマップとハイトフィールドという用語はしばしば混同されますが、実際にはわずかな違いがあります。ハイトマップは数学用語の「マップ」に由来し、ハイトフィールドは数学用語の「ベクトル場」に由来します。ハイトマップの方がより正確な表現です。なぜなら、ほとんどのハイトフィールドは数学的には(ベクトル)場ではなく、常にマップ(数学的にも視覚的にも)だからです。