|
发表于 2010-8-23 12:45:00
|
显示全部楼层
Re:纹理混合问题
m_pDevice->SetTexture( 0, pTexture );
m_pDevice->SetTexture( 1, pAlpha );
m_pDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_CURRENT ); // 将 Stage0 的颜色当成 COLORARG1; D3DTA_CURRENT 指的是上一次计算的输出,这里相当于 pTexture 的纹理
m_pDevice->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_SELECTARG1 ); // 将 COLORARG1 的颜色当成输出
m_pDevice->SetTextureStageState( 1, D3DTSS_ALPHAARG1, D3DTA_CURRENT ); // 将 Stage0 的 Alpha 当成 ALPHAARG1
m_pDevice->SetTextureStageState( 1, D3DTSS_ALPHAARG2, D3DTA_TEXTURE ); // 将当前( Stage1 即 pAlpha ) 的 Alpha 当成 ALPHAARG2
m_pDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2 ); // 将 ALPHAARG2 输出 |
|