|
|
我买的书上都没有给出代码,网络上的也都是简单的一笔带过……DXSDK里面的范例只有shadow mirror depth
请教一下如何实现消融?
先说说自己的结果好了:
// 准备绘制
g_pd3dDevice->SetRenderState( D3DRS_STENCILENABLE, TRUE ) ;
g_pd3dDevice->SetRenderState( D3DRS_STENCILREF, 0x00000000 ) ;
g_pd3dDevice->SetRenderState( D3DRS_STENCILMASK, 0xffffffff ) ;
g_pd3dDevice->SetRenderState( D3DRS_STENCILWRITEMASK, 0xffffffff ) ;
g_pd3dDevice->SetRenderState( D3DRS_STENCILFUNC, D3DCMP_LESS ) ;
g_pd3dDevice->SetRenderState( D3DRS_STENCILPASS, D3DSTENCILCAPS_KEEP ) ;
// 绘制
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
// 结束的时候关掉
g_pd3dDevice->SetRenderState( D3DRS_STENCILENABLE, FALSE ) ;
但是没有得到预想的结果,
而且我发现在从D3DFMT_D16 转D3DFMT_D24S8 图像就消失了一部分了
但是我有检查,并且通过了D3DFMT_D24S8
|
|