Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® Direct3D® は、テクスチャ ステージを使用して、シングルパスのマルチ テクスチャ ブレンディングをサポートしている。テクスチャ ステージには 2 つの引数を受け取り、ブレンディング処理を行い、後続の処理またはラスタ化に結果を渡す。テクスチャ ステージは、次の図のように図式化できる。
上の図に示すように、テクスチャ ステージは指定のオペレータを使用して 2 つの引数をブレンドする。一般的な操作には、引数の色またはアルファ要素の単純変調や加算があるが、20 以上の操作がサポートされている。ステージの引数は、関連付けられたテクスチャ、補間色または補間アルファ (グーロー シェーディング中の補間)、任意の色とアルファ、または以前のテクスチャ ステージからの結果である。詳細については、「テクスチャ ブレンディング処理と引数」を参照すること。
注 Direct3D では、カラー ブレンディングとアルファ ブレンディングを区別する。アプリケーションでは、色とアルファに対して個別にブレンディング処理と引数を設定し、これらの設定が互いの結果に影響することはない。
マルチ ブレンディング ステージで使用される引数と処理の組み合わせは、単純なフローを基本とするブレンディング言語を定義する。1 つのステージの結果は別のステージに流れ、次にそのステージの結果が次のステージに流れ、以下同様に続く。ステージからステージへの流れが最終的にポリゴン上でラスタ化される概念を、通常、テクスチャ ブレンディング カスケードと呼ぶ。次の図は、個別のテクスチャ ステージがどのようにテクスチャ ブレンディング カスケードを構成するかを示している。
デバイス内の各ステージは、0 から始まるインデックスを持つ。Direct3D では、最大 8 つのブレンディング ステージを利用できる。ただし、現在のハードウェアでサポートされるステージ数を判断するために、デバイス機能を調べる必要がある。第 1 ブレンディング ステージはインデックス 0 にあり、第 2 ステージはインデックス 1 にあり、以下インデックス 7 まで同様である。システムは、インデックスの昇順にステージをブレンドする。
必要な数だけのステージを使用する。使用しないブレンディング ステージはデフォルトで無効になる。アプリケーションが最初の 2 つのステージだけを使用する場合は、ステージ 0 と 1 についてだけ設定操作と引数が必要である。システムは 2 つのステージをブレンドし、無効なステージを無視する。
最適化に関する注意 オブジェクトによっては 4 つのステージを使用したり、2 つのステージを使用するなど、状況に応じてアプリケーションで使用するステージの数が変わる場合は、以前に使用したすべてのステージを明示的に無効にしなくてもよい。最初の未使用のステージに対してカラー処理を無効にしても、それよりインデックスが大きいステージでは無効にならない。カラー処理を最初のテクスチャ ステージ (ステージ 0) に設定すると、すべてのテクスチャ マッピングを無効にできる。