C++ D3D9中的纹理渲染问题

C++ D3D9中的纹理渲染问题,c++,directx-9,C++,Directx 9,我试图在游戏中把世界渲染成一个钩子里的纹理,但是图像最终被渲染了。由于它是在近距离对象之前渲染远距离对象,因此z缓冲区渲染状态不正确似乎是个问题,但即使在绘制之前设置它们,也不会发生任何更改 钩子中的代码如下所示: IDirect3DSurface9 *pOrigRT; g_pDevice->GetRenderTarget(0, &pOrigRT); g_pDevice->SetRenderTarget(0, pSurf[0]); g_pD

我试图在游戏中把世界渲染成一个钩子里的纹理,但是图像最终被渲染了。由于它是在近距离对象之前渲染远距离对象,因此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);

还有什么会造成这种影响?

我认为你在挑选技术方面似乎有问题:@andreashager为什么?问题不在于有什么东西没有显示,而是在其他对象后面的对象被渲染在它们上面而不是后面。