Platform SDK: DirectX

テクスチャによるライト マッピング

3D シーンをリアルにレンダリングするには、光源がシーンの表示に与えるエフェクトを考慮しなければならない。フラット シェーディングやグーロー シェーディングなどの技術はこの点で貴重なツールであるが、これらの技術だけでは不十分である。Direct3D は、マルチパス テクスチャ ブレンディングとマルチ テクスチャ ブレンディングをサポートしている。これらの機能によって、シェーディング技術だけでレンダリングしたシーンよりもずっとリアルなシーンをレンダリングできる。1 つまたは複数のライト マップを利用すれば、プリミティブにライティングと影の領域をマップできる。

ライト マップとは、3D シーンのライティングについての情報を含むテクスチャまたはテクスチャ グループのことである。このライティング情報をライト マップのアルファ値、カラー値、またはその両方に格納できる。

マルチパス テクスチャ ブレンディングを使用してライト マッピングを実現する場合は、最初のパスでプリミティブにライト マップをレンダリングする必要がある。また、第 2 のパスを使用して、ベース テクスチャをレンダリングする必要がある。ただし、スペキュラ ライト マッピングは除く。スペキュラ ライト マップの場合は、最初にベース テクスチャをレンダリングし、次にライト マップを追加する。

マルチ テクスチャ ブレンディングによって、1 つのパスでライト マップとベース テクスチャの両方をレンダリングできる。ユーザーのハードウェアでマルチ テクスチャ ブレンディングがサポートされている場合は、ライト マッピングを行うときにこのブレンディングを利用するようにする。これによって、アプリケーションのパフォーマンスが大幅に向上する。

ライト マップを使用すれば、Direct3D アプリケーションでは、プリミティブをレンダリングするときにさまざまなライティング エフェクトを生成できる。モノクロ ライティングやカラー ライティングをシーンにマッピングできるほかにも、スペキュラ ハイライトやディフューズ ライトなどの細かなエフェクトを追加できる。

Direct3D テクスチャ ブレンディングを使用してライト マッピングを実行する方法については、以下のトピックで説明する。