|
|
void render()
{
g_device->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,255,255), 1.0f, 0 );
g_device->BeginScene();
g_device->SetRenderState( D3DRS_LIGHTING, FALSE ); //禁用照明效果,默认情况下起用启用照明
//计划Alpha混合, 设置ALPHA混合系数
g_device->SetRenderState( D3DRS_ALPHABLENDENABLE,true);
g_device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
g_device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
//设置纹理渲染状态
g_device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 );
g_device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
//纹理Alpha操作设置
g_device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );
g_device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
g_device->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
g_sprite->Begin( D3DXSPRITE_SORT_DEPTH_FRONTTOBACK|D3DXSPRITE_ALPHABLEND);
D3DXVECTOR3 pos(10,10,0);
g_sprite->Draw(g_texture2, NULL,NULL,&pos,0xFFFFFFFF);
g_sprite->Draw(g_texture1,NULL,NULL,&pos,0xFFFFFFFF);
// D3DXVECTOR3 pos1(200,10,0);
// g_sprite->Draw(g_texture2, NULL,NULL,&pos1,0xFFFFFFFF);
g_device->SetRenderState(D3DRS_ALPHABLENDENABLE, false);
g_sprite->End();
// g_device->SetTexture(0,g_texture1);
g_device->EndScene();
g_device-> resent( NULL, NULL, NULL, NULL );
}
代码如上,可是渲染出来结果一张把另外一张挡住了,请问问题出在哪? |
|