|

楼主 |
发表于 2004-4-7 12:32:00
|
显示全部楼层
Re:d3d COLORKEY 的问题
我把调色板改的alpha改成FF了也一样 打开TEST就什么也看不见了。
状态设置
/ Setup a material
D3DMATERIAL9 mtrl;
D3DUtil_InitMaterial( mtrl, 1.0f, 0.0f, 0.0f );
m_pd3dDevice->SetMaterial( &mtrl );
// Set up the textures
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
// Set miscellaneous render states
m_pd3dDevice->SetRenderState( D3DRS_DITHERENABLE, FALSE );
m_pd3dDevice->SetRenderState( D3DRS_SPECULARENABLE, FALSE );
m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
m_pd3dDevice->SetRenderState( D3DRS_AMBIENT, 0x000F0F0F );
/*
m_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
// Set the source blend state.
m_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,
D3DBLEND_ONE);
// Set the destination blend state.
m_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,
D3DBLEND_ONE);
*/
m_pd3dDevice->SetRenderState(D3DRS_ALPHAREF, (DWORD)0x00000001);
m_pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
m_pd3dDevice->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL);
画图片部分
for( int i = 0 ; i < m_pmmg->GetNumBox() ; i++)
{
m_pd3dDevice->SetTexture ( 0 ,m_pmmg->GetBox ( i ).GetTexture());
m_pd3dDevice->SetStreamSource( 0, m_pmmg->GetBox ( i ).GetVertexBuf(), 0, sizeof(CUSTOMVERTEX) );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
m_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );
}
闹蚀唇ê??
g_zt.AddTexture("H:\\TANK\\效果\\01\\x-01-05.bmp");
ColorKey=0XFF000000; |
|