在D3D9中渲染到纹理的问题

时间:2015-01-20 11:52:23

标签: c++ directx-9

我试图将世界渲染到游戏钩子内的纹理,但图像最终会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);

还有什么可能导致这种影响?

0 个答案:

没有答案