|
|
为什么使用如下设置后 多重贴图是办到了,可是灯光老是很暗 就是混合后图片颜色变的很深造成的
这个问题如何解决?
m_pd3ddev->SetTexture( 0, m_pTex[0] );
m_pd3ddev->SetTexture( 1, m_pTex[1] );
m_pd3ddev->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
m_pd3ddev->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR ); // 0号纹理层的放大滤镜
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR ); // 0号纹理层的放大滤镜
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR ); // 0号纹理层的放大滤镜
g_pd3dDevice->SetSamplerState( 1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR ); // 0号纹理层的放大滤镜
g_pd3dDevice->SetSamplerState( 1, D3DSAMP_MINFILTER, D3DTEXF_LINEAR ); // 0号纹理层的放大滤镜
g_pd3dDevice->SetSamplerState( 1, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR ); // 0号纹理层的放大滤镜
//#
m_pd3ddev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE); // texture
m_pd3ddev->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE); // lighting
m_pd3ddev->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
m_pd3ddev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
m_pd3ddev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
// light map
m_pd3ddev->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE); //light map
m_pd3ddev->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
m_pd3ddev->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE); |
|