ホライズンマッピングは、 3Dコンピュータグラフィックスにおけるテクスチャマッピング技術であり、バンプマップやその他のデジタル標高モデル(DEM)などの変位したディテールを持つサーフェス上でリアルな自己影をシミュレートするために使用されます。これは、サーフェス上のすべての点について周囲の地形の形状を事前に記録することで実現され、グラフィックスエンジンが光源がこれらの特徴によって遮られているかどうかを迅速にチェックできるようになります。[ 1 ]これにより、バンプが互いに影を落としているような錯覚が生じ、基となる3Dジオメトリを変更するパフォーマンスコストをかけずに、奥行き知覚が大幅に向上します。[ 2 ]ホライズンマッピングは、 1988年にネルソン・L・マックスによって導入されました。 [ 3 ]
現代のホライズンマッピングの実装は、メモリを節約するために圧縮されることが多く、惑星の地形のような大規模なタイルベースの環境のレンダリングによく使用されます。[ 4 ]
標準的なバンプマッピングは、表面法線を摂動させることで表面の詳細の錯覚を作り出しますが、「バンプ」同士が影を落とすことは考慮されていません。[ 2 ]ホライズンマッピングは、この制限を克服するために、ネルソン・L・マックスが1988年の論文「Horizon mapping: shadows for bump-mapped surfaces」で導入しました。 [ 3 ]この技術は、周囲のジオメトリによってどれだけの光が遮られるかを事前に計算することで、フル3Dジオメトリをレンダリングするパフォーマンスコストをかけずに、奥行き知覚を劇的に向上させる高速でリアルな自己遮蔽を可能にします。
地平線マッピングのコアメカニズムは、可視地平線の形状を事前に計算することに基づいています。地形テクスチャ上の各ピクセルまたは点について、アルゴリズムは、量子化された方位角の集合に沿って、周囲の形状の最大仰角を計算します。[ 1 ]
リアルタイムレンダリング中、エンジンはシーンの光源(太陽など)の高度と方位角を計算します。光源の方位角を事前に計算された離散的な方向にマッピングし、対応する地平線の高度を補間することで、アルゴリズムは光源の角度をローカルの地平線と瞬時に比較できます。光源の高度が記録された地平線の高度より低い場合、その点は影になります。高い場合は、照らされます。
ホライゾンマッピングは、惑星規模のビデオゲーム、フライトシミュレーター、科学的可視化など、タイルベースの大規模な環境において非常に有利です。影の計算に必要なすべての情報がホライゾンマップテクスチャにローカルに保存されるため、レンダリングエンジンは、正確な影を投影するために、大量の視界外の地形ジオメトリをメモリにロードしておく必要がありません。[ 4 ]
最近の研究では、この技術のメモリ使用量がさらに最適化されています。例えば、2025年の論文では、切り捨てフーリエ級数を使用することで、地平線データを単一のマルチ解像度テクスチャに圧縮できることが実証されており、これによりエンジンは最小限のメモリ予算で惑星規模のリアルタイムソフトシャドウをレンダリングできます。[ 4 ]