マルチパス テクスチャ ブレンド (Direct3D 9)

Direct3D アプリケーションでは、複数のレンダリング パスでさまざまなテクスチャを 1 つのプリミティブに適用することで、多彩な特殊効果を実現することができます。 これは、一般にマルチパス テクスチャ ブレンドと呼ばれます。 通常、マルチパス テクスチャ ブレンドは、さまざまなテクスチャから複数のカラーを適用して、複雑なライティング モデルやシェーディング モデルの効果をエミュレートするために使用されます。 このような適用はライト マッピングと呼ばれます。 詳細については、「 テクスチャを使用したライト マッピング (Direct3D 9)」を参照してください。

注意

一部のデバイスでは、1 回のパスでプリミティブに複数のテクスチャを適用できます。 詳細については、「 テクスチャ ブレンド (Direct3D 9)」を参照してください。

 

ユーザーのハードウェアで複数テクスチャ ブレンドがサポートされていない場合、アプリケーションはマルチパス テクスチャ ブレンドを使って同じ視覚効果を実現できます。 ただし、アプリケーションは複数テクスチャ ブレンドを使ったときに生じる可能性があるフレーム レートに対応できません。

C/C++ アプリケーションでマルチパス テクスチャ ブレンドを実行する。

  1. IDirect3DDevice9::SetTexture メソッドを呼び出して、テクスチャ ステージ 0 でテクスチャを設定します。
  2. IDirect3DDevice9::SetTextureStageState メソッドを使用して、目的の色とアルファ ブレンドの引数と操作を選択します。 既定の設定は、マルチパス テクスチャ ブレンドに最適です。
  3. シーン内の適切なオブジェクトをレンダリングします。
  4. テクスチャ ステージ 0 で次のテクスチャを設定します。
  5. D3DRS_SRCBLENDとD3DRS_DESTBLENDのレンダリング状態を設定して、必要に応じてソースとターゲットのブレンド係数を調整します。 システムが、これらのパラメーターに従って、レンダー ターゲット サーフェスで新しいテクスチャと既存のピクセルをブレンドします。
  6. 必要な数のテクスチャに対して手順 3、4、5 を繰り返します。

テクスチャ ブレンド