多通道纹理混合 (Direct3D 9)

Direct3D 应用程序可以通过在多个呈现传递过程中将各种纹理应用于基元来实现许多特殊效果。 这一点的常见术语是多通道纹理混合。 多通道纹理混合的典型用途是通过应用多个不同纹理中的多种颜色来模拟复杂照明和底纹模型的效果。 一种此类应用程序称为光映射。 有关详细信息,请参阅 纹理的光映射(Direct3D 9)

注意

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

 

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

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

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

纹理混合