Platform SDK: DirectX

マルチパス テクスチャ ブレンディング

Direct3D アプリケーションでは、マルチ レンダリング パスで各種テクスチャをプリミティブに適用して、数多くの特殊効果を実現できる。この処理は一般にマルチパス テクスチャ ブレンディングと呼ばれる。マルチパス テクスチャ ブレンディングの一般的な用途は、いくつかの異なるテクスチャから複数の色を適用して、複雑なライティングおよびシェーディング モデルのエフェクトをエミュレートすることである。これをライト マッピングと呼ぶ。詳細については、「テクスチャによるライト マッピング」を参照すること。

 :  デバイスによっては、単一のパスで、複数のテクスチャをプリミティブに適用できる場合もある。詳細については、「マルチ テクスチャ ブレンディング」を参照すること。

ユーザーのハードウェアでマルチ テクスチャ ブレンディングがサポートされていない場合でも、アプリケーションでは、マルチパス テクスチャ ブレンディングを使用して同じ視覚エフェクトを実現できる。ただし、マルチ テクスチャ ブレンディングを使用した場合には可能なフレーム レートを維持することはできない。

[C++]

C++ アプリケーションでマルチ テクスチャ ブレンディングを実行するには

  1. IDirect3DDevice7::SetTexture メソッドを呼び出して、テクスチャ ステージ 0 にテクスチャを設定する。
  2. IDirect3DDevice7::SetTextureStageState メソッドを使用して、希望の色およびアルファ ブレンディング引数と処理を選択する (マルチパス テクスチャ ブレンディング用の最適な設定はデフォルト設定である)。
  3. シーン内の適切なオブジェクトをレンダリングする。
  4. 次のテクスチャをテクスチャ ステージ 0 に設定する。
  5. D3DRENDERSTATE_SRCBLEND および D3DRENDERSTATE_DESTBLEND レンダリング ステートを設定して、ブレンド元およびブレンド先のブレンディング係数を必要に応じて調整する。これらのパラメータに基づいて、新しいテクスチャがレンダリング ターゲット サーフェス内の既存のピクセルでブレンドされる。
  6. 必要に応じて、ほかのテクスチャに対して手順 3、4、および 5 を繰り返す。
[Visual Basic]

Visual Basic アプリケーションでマルチ テクスチャ ブレンディングを実行するには

  1. Direct3DDevice7.SetTexture メソッドを呼び出して、テクスチャ ステージ 0 にテクスチャを設定する。
  2. Direct3DDevice7.SetTextureStageState メソッドを使用して、希望の色およびアルファ ブレンディング引数と処理を選択する (マルチパス テクスチャ ブレンディング用の最適な設定はデフォルト設定である)。
  3. シーン内の適切なオブジェクトをレンダリングする。
  4. 次のテクスチャをテクスチャ ステージ 0 に設定する。
  5. D3DRENDERSTATE_SRCBLEND および D3DRENDERSTATE_DESTBLEND レンダリング ステートを設定して、ブレンド元およびブレンド先のブレンディング係数を必要に応じて調整する。これらのパラメータに基づいて、新しいテクスチャがレンダリング ターゲット サーフェス内の既存のピクセルでブレンドされる。
  6. 必要に応じて、ほかのテクスチャに対して手順 3、4、および 5 を繰り返す。