|
发表于 2004-4-26 18:09:00
|
显示全部楼层
Re: alpha blending
g_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
g_pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );
g_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
g_pd3dDevice->SetRenderState( D3DRS_DESTBLEND,D3DBLEND_ONE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MULTIPLYADD );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
在渲染时调一下参数设置
改一下ALPHA就会有所变化:)
D3DRS_SRCBLEND,D3DRS_DESTBLEND 是运算参数可以看一下DX SDK帮助
D3DTOP_MULTIPLYADD 是颜色蝶加
如果想透明,可以在贴图上加上Alpha通道,设置Alpha值,在进行这样的渲染设定就可以了 |
|