多通道纹理混合 (Direct3D 9)

通过在多通道呈现的过程中将不同纹理应用到基元,Direct3D 应用可以实现多个特殊效果。 我们通用将此称为多通道纹理混合。 多通道纹理混合通常用于:通过应用几种不同纹理的多种颜色来模拟复杂照明及着色模型的效果。 比如光照映射。 有关详细信息,请参阅 Direct3D 9) (纹理的光映射

注意

某些设备能够在一次传递中将多个纹理应用于基元。 有关详细信息,请参阅 纹理混合 (Direct3D 9)

 

如果用户的硬件不支持多纹理混合,你的应用程序可以使用多通道纹理混合来实现相同的视觉效果。 但是,当使用多纹理混合时,应用程序无法维持相同的帧速率。

在 C/C++ 应用程序中执行多通道纹理混合。

  1. 通过调用 IDirect3DDevice9::SetTexture 方法在纹理阶段 0 中设置纹理。
  2. 使用 IDirect3DDevice9::SetTextureStageState 方法选择所需的颜色和 alpha 混合参数和操作。 默认设置非常适合多通道纹理混合。
  3. 渲染场景中的适当对象。
  4. 在纹理阶段 0 中设置下一个纹理。
  5. 设置D3DRS_SRCBLEND和D3DRS_DESTBLEND呈现状态,根据需要调整源和目标混合因子。 系统根据这些参数将新纹理与渲染目标表面中的现有像素混合。
  6. 重复步骤 3、4 和 5,根据需要使用尽可能多的纹理。

纹理混合