テクスチャ ブレンド
Direct3D では、1 つのパスでプリミティブに 8 個までのテクスチャをブレンドできます。 複数のテクスチャ ブレンドを使うと、Direct3D アプリケーションのフレーム レートが大幅に増えることがあります。 アプリケーションは複数のテクスチャを使って、テクスチャ、シャドウ、鏡面反射、拡散光、およびその他の特殊効果を 1 つのパスで適用します。
テクスチャ ブレンドを使用するには、最初にアプリケーションでユーザーのハードウェアがテクスチャ ブレンドをサポートしているかどうかを確認する必要があります。
テクスチャ ステージとテクスチャ ブレンディング カスケード
Direct3D では、テクスチャ ステージの使用によって、単一パスでの複数のテクスチャ ブレンドがサポートされます。 テクスチャ ステージは 2 つの引数を受け取り、それらに対してブレンド処理を実行して、その後の処理またはラスター化に結果を渡します。 テクスチャ ステージを具体的に表すと、次の図のようになります。
上の図のように、テクスチャ ステージは、指定された演算子を使用して、2 つの引数をブレンドします。 一般的な演算には、引数のカラーまたはアルファ成分の単純な乗算や加算がありますが、実際にサポートされている演算は 24 を超えます。 ステージの引数には、関連付けられたテクスチャ、反復処理されるカラーまたはアルファ (グーロー シェーディング時に反復処理)、任意のカラーとアルファ、以前のテクスチャ ステージの結果などがあります。
注: Direct3D では、カラー ブレンドとアルファ ブレンドは区別されます。 アプリケーションでは、カラーとアルファについて個々にブレンドの演算と引数を設定し、これらの設定の結果は互いに独立しています。
複数のブレンド ステージで、引数と演算を組み合わせて使用することによって、単純なフローベースのブレンド言語を定義できます。 1 つのステージの結果は別のステージに移行し、さらにそのステージから次のステージに移行します。 その後も同様に続きます。結果が、ステージからステージに渡され、最終的にポリゴンでラスター化される概念を、一般にテクスチャ ブレンディング カスケードと呼びます。 次の図は、個々のテクスチャ ステージがテクスチャ ブレンディング カスケードを構成しているようすを示しています。
デバイス内の各ステージには、ゼロから始まるインデックスがあります。 Direct3D では、最大 8 つのブレンド ステージを使用することができますが、必ずデバイスの能力をチェックして、現在のハードウェアでサポートされるステージの数を確認する必要があります。 最初のブレンド ステージはインデックス 0 にあり、2 番目のブレンド ステージはインデックス 1 にあり、その後、インデックス 7 まで同様に続きます。 システムは、インデックスの昇順でステージをブレンドします。
ステージは必要な数だけ使用してください。未使用のブレンド ステージは既定で無効になります。 つまり、アプリケーションで最初の 2 つのステージのみを使用する場合、演算と引数の設定が必要なのは、ステージ 0 と 1 のみです。 システムでは 2 つのステージがブレンドされ、無効なステージは無視されます。
4 つのステージを使用するオブジェクトや、2 つのステージのみを使用するオブジェクトなど、状況に応じてアプリケーションで使用するステージの数が変わる場合は、以前に使用したすべてのステージを明示的に無効にする必要はありません。 1 つのオプションとして、最初の未使用のステージについてカラー処理を無効にすると、それよりもインデックスが大きいステージはすべて適用されなくなります。 別のオプションとして、最初のテクスチャ ステージ (ステージ 0) のカラー処理を無効な状態に設定すると、テクスチャ マッピングをまとめて無効にすることができます。
このセクションの内容
トピック | 説明 |
---|---|
ブレンド ステージは、テクスチャ操作のセットと、テクスチャのブレンド方法を定義する引数です。 |
|
Direct3D アプリケーションでは、複数のレンダリング パスでさまざまなテクスチャを 1 つのプリミティブに適用することで、多彩な特殊効果を実現することができます。 これは、一般にマルチパス テクスチャ ブレンドと呼ばれます。 通常、マルチパス テクスチャ ブレンドは、さまざまなテクスチャから複数のカラーを適用して、複雑なライティング モデルやシェーディング モデルの効果をエミュレートするために使用されます。 このような適用はライト マッピングと呼ばれます。 |
関連トピック