|
|
VOID PerRenderhigh(LPDIRECT3DTEXTURE9 pTexture0,LPDIRECT3DTEXTURE9 pTexture1,D3DTEXTUREOP nMul0,D3DTEXTUREOP nMul1)
{
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET| D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
g_pd3dDevice->BeginScene() ;
g_pd3dDevice->SetTexture( 0, pTexture0 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, nMul0 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
if (pTexture1 != NULL)
{
g_pd3dDevice->SetTexture( 1, pTexture1 );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP, nMul1 );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT );
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
}
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 2 );
g_pd3dDevice->EndScene() ;
g_pd3dDevice-> resent( NULL, NULL, NULL, NULL );
}
PerRenderhigh(g_pTexture_low,g_pTexture_high,D3DTOP_MODULATE,D3DTOP_ADD);
我想把两张纹理g_pTexture_low,g_pTexture_high的颜色相加,但是总是不对,g_pVB中顶点颜色为0xffffffff。
请问上述代码理论上是正确的吗? [em4] [em4] [em4] |
|