|
|

上面这张图是背光部分。但是圈内部分,没有和其他纹理一样变暗!不知道出了啥问题,郁闷
草的边缘是用MultiTexture方式贴上去的,代码简化后如下:
g_pd3dDevice->SetStreamSource(0, m_pVB, 0, sizeof(D3DFVF_XVERTEX) );
g_pd3dDevice->SetFVF( D3DFVF_XVERTEX );
g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX,0 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
g_pd3dDevice->SetTexture( 0, m_TextureDirt);
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX,1 );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP,D3DTOP_BLENDTEXTUREALPHA );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG1,D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG2,D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAARG1,D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
g_pd3dDevice->SetTexture( 1, m_TextureGrass );
g_pd3dDevice->SetIndices( m_pIB );
g_pd3dDevice->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 0, VertexCount,0, IndexCount ); |
|