|
刚实现了利用广告牌渲染的树木,但是问题又出现了,就是融合的时候各广告牌之间因为渲染顺序的前后而相互遮挡,但是又不是正常的遮挡。效果附件的图所示。
我设置的代码如下
void CTree: reRender()
{
//设置纹理状态
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
m_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
//Alpha混合设置, 设置混合系数
m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
//禁用照明效果
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, false );
}
void CTree::PostRender(){
m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, false );
m_pd3dDevice->SetRenderState( D3DRS_LIGHTING, true );
}
请问这出错在哪里呢? |
|