我试图将世界渲染到游戏钩子内的纹理,但图像最终会this。由于它将近距离物体渲染到近物体前面,因此看起来像是一个不正确的z缓冲渲染状态的问题,但即使我在它绘制之前设置它们也没有任何变化。
钩子里面的代码如下所示:
IDirect3DSurface9 *pOrigRT;
g_pDevice->GetRenderTarget(0, &pOrigRT);
g_pDevice->SetRenderTarget(0, pSurf[0]);
g_pDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x00000088, 1.0f, 0.0f);
g_pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
g_pDevice->SetRenderState(D3DRS_ZWRITEENABLE, true);
g_pDevice->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
ZGameDraw(pThis);
g_pDevice->SetRenderTarget(0, pOrigRT);
g_pDevice->StretchRect(pSurf[0], 0, pOrigRT, 0, D3DTEXF_NONE);
SAFE_RELEASE(pOrigRT);
还有什么可能导致这种影响?