2013-12-15 5 views
2

일부 지형 렌더링을 수행 중이고 일부 문제가 발생했습니다. 이 시점에서 나는 버텍스 패치를 테셀레이션 한 후 높이 맵을 사용하여 버텍스 패치를 옮깁니다. 현재의 문제는 렌더링이 꽤 펑키 한 것처럼 보입니다. 나는 이것을 잠시 동안 디버깅 해 왔으며 깊이 버퍼에 문제가있는 것처럼 보입니다. 과거에는 무슨 일이 일어나고 있는지 전혀 알 수 없습니다.터 레인 테셀레이션 및 깊이 버퍼

다음은 VS 그래픽 디버깅을 사용하여 촬영 한 깊이 버퍼의 이미지입니다. 나는 그것을 이해로서 나는 빨강 채널의 이미지와 녹색 채널을 잡고, 그래서 가장 좋은 방법은 디버거를 사용하여이를 보여 않네 정말 확실 1 1.5

여기 2

백 버퍼의 가까운 픽셀이어야합니다 추가 픽셀보다 더 어둡게 표시됩니다. 두 번째 이미지와 세 번째 이미지를 비교할 때 알 수 있듯이 그 반대가 발생하는 것처럼 보입니다. 뭔가를 오해하고 있거나 이상한 일이 있습니다.

아이디어가 없기 때문에 어떤 생각이나 방향을 지적하면 매우 감사하겠습니다.

나는 가능한 질문에 대한 내 깊이 버퍼 설정하고 방법을 게시합니다 :

여기

내가 내 스텐실 상태 및 래스터 상태를 설정하고 방법은 다음과 같습니다

D3D11_DEPTH_STENCIL_DESC dsdesc; 
ZeroMemory(&dsdesc, sizeof(dsdesc)); 

dsdesc.DepthEnable = true; 
dsdesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; 
dsdesc.DepthFunc = D3D11_COMPARISON_LESS; 
dsdesc.StencilEnable = true; 
dsdesc.StencilReadMask = 0xFF; 
dsdesc.StencilWriteMask = 0xFF; 
dsdesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; 
dsdesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_INCR; 
dsdesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; 
dsdesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS; 
dsdesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; 
dsdesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_DECR; 
dsdesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; 
dsdesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS; 

HR(_device->CreateDepthStencilState(&dsdesc, &_depthStencilState)); 

D3D11_RASTERIZER_DESC rd; 
rd.AntialiasedLineEnable = false; 
rd.CullMode = D3D11_CULL_BACK; 
rd.DepthClipEnable = true; 
rd.DepthBias = 0; 
rd.DepthBiasClamp = 0.0f; 
rd.FillMode = D3D11_FILL_SOLID; 
rd.FrontCounterClockwise = false; 
rd.MultisampleEnable = false; 
rd.ScissorEnable = false; 
rd.SlopeScaledDepthBias = 0.0f; 

을 한 후 나는 참으로 오전

: 그들을

다음
_context->RSSetState(_rasterStateWireframe); 
_context->OMSetDepthStencilState(_depthStencilState, 1); 

내가 내 깊이 버퍼를 설정하고 방법 사용 214,673,210

편집 : img

답변

0

img K가 문제를 해결 :

추가 몇 가지 더 많은 이미지는, 어쩌면이 문제 좀 더 나은을 보여줍니다. 원근 투영을 만들 때 가까운 평면과 먼 평면을 뒤집어 놓았습니다.