|
|
给地形贴单纹理正常,今天又给地形加了一层纹理后发现,场景中的模型,天空都混合上了第2层纹理。
以下是纹理混合的代码:
_g_pd3dDevice->SetTexture(0,_g_pTexture1);
_g_pd3dDevice ->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
_g_pd3dDevice ->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
_g_pd3dDevice ->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
//_g_pd3dDevice ->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
//纹理采样属性,此处设为 “线形纹理过滤(Linear Texture Filtering)”
_g_pd3dDevice -> SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
_g_pd3dDevice -> SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
//重叠纹理寻址
_g_pd3dDevice -> SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP);
_g_pd3dDevice -> SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_WRAP);
_g_pd3dDevice -> SetTexture( 1, _g_pTexture2 );
_g_pd3dDevice ->SetTextureStageState( 1,D3DTSS_TEXCOORDINDEX,0);//共用纹理坐标
_g_pd3dDevice ->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_MODULATE );
_g_pd3dDevice ->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE );
_g_pd3dDevice ->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT );
//_g_pd3dDevice ->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
//纹理采样属性,此处设为 “线形纹理过滤(Linear Texture Filtering)”
_g_pd3dDevice -> SetSamplerState(1, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
_g_pd3dDevice -> SetSamplerState(1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
//重叠纹理寻址
_g_pd3dDevice -> SetSamplerState(1, D3DSAMP_ADDRESSU, D3DTADDRESS_WRAP);
_g_pd3dDevice -> SetSamplerState(1, D3DSAMP_ADDRESSV, D3DTADDRESS_WRAP);
请帮忙看下怎么回事。或者帮忙想下问题可能出在哪里。THANKS! |
|