|
|
d3d9 中的 depth buffer 不工作。。。
我的程序里面:
m_theD3dpp.EnableAutoDepthStencil = TRUE;
m_theD3dpp.AutoDepthStencilFormat = D3DFMT_D16;
设置了
m_pD3DDevice->SetRenderState (D3DRS_ZENABLE, D3DZB_TRUE);
也调用了
m_pD3DDevice->Clear (0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB (0x00, 0x00, 0x00), 1.0f, 0);
也调用了
BeginScene 以后:
调用 m_pD3DDevice->DrawIndexedPrimitive 画第一个 model
然后再调用 m_pD3DDevice->DrawIndexedPrimitive 画第二个 model。
建模可以确定 第二个 model 是在 第一个 model 的后面。
结果程序执行显示的第二个 model 总是在第一个前面。调节第二个
model 的 z 坐标(我的 camera 是设在 z 轴上朝向 z 轴正向),
仍然是第二个 model 总是在第一个前面,只是改变了大小。。。
这是怎么回事?难道 z-buffer 只在单个 DrawPrimitive 内有效???
|
|