我一直在关注一些Rastertek教程,并且我遇到了一个问题,即顶点未正确绘制。后面的顶点被绘制在应该在前面的顶点的前面。我不确定为什么会这样,因为我相信一切都已正确设置。
这是我的深度模板:
D3D11_DEPTH_STENCIL_DESC dsd;
ZeroMemory(&dsd, sizeof(dsd));
dsd.DepthEnable = true;
dsd.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
dsd.DepthFunc = D3D11_COMPARISON_LESS;
dsd.StencilEnable = true;
dsd.StencilReadMask = 0xFF;
dsd.StencilWriteMask = 0xFF;
dsd.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
dsd.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_INCR;
dsd.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
dsd.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
dsd.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP;
dsd.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_DECR;
dsd.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP;
dsd.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS;
DXHRes(mDevice->CreateDepthStencilState(&dsd, &mDepthStencilState));
mContext->OMSetDepthStencilState(mDepthStencilState, 1);
这是什么原因以及我应该看哪一节?
任何帮助都将不胜感激。
答案 0 :(得分:0)
我解决了我的问题。我没有错误地设置任何设备资源(据我所知)。
对于其他有同样问题的人,我每帧都错误地设置了我的视图矩阵。确保正确设置了摄像机视图矩阵(例如正确设置XMMatrixLookAtLH')