컴퓨트 쉐이더 돌리는거고 그래픽스 디버거로 상수버퍼들이랑 깊이버퍼 다 제대로 올라간거 확인했음
혹시나 행렬 잘못 곱해서 올린건가 싶어서 프로젝션 뷰행렬 나눠서 올렸는데도 이상하게 나오더라 ㅋㅋㅋ
뭘로 바꿔봐도 z값이 몇백억 이런식으로 나오는 중 ㅋㅋ
컴퓨트 쉐이더 돌리는거고 그래픽스 디버거로 상수버퍼들이랑 깊이버퍼 다 제대로 올라간거 확인했음
혹시나 행렬 잘못 곱해서 올린건가 싶어서 프로젝션 뷰행렬 나눠서 올렸는데도 이상하게 나오더라 ㅋㅋㅋ
뭘로 바꿔봐도 z값이 몇백억 이런식으로 나오는 중 ㅋㅋ
뎁스 타겟에서 꺼내온 값이 뭔데?
내가 한 셰이더랑 버전이 달라서 정확힌 모르겠는데 저거 float4 뒤에 w값은 안넣어줘도되냐?
그리고 괄호 좀 쳐 ㅇㅅ1ㅇ
수식 보니까 투영좌표계 기준 깊이 값으로 예상되는데, 그걸 역으로 NDC 좌표계로 변환하고 있네. 깊이타겟에 값 저장 할 때 Local * WVP 곱하고 나서 혹시 타겟에 바로 저장했어?
깊이 버퍼에 들어간 값은 그냥 일반 렌더 패스 돌린 값들임. 프로젝션 끝나고 레스터라이저에서 처리 되서 나온 값들이야
그리고 지금 해주려는건 스크린 좌표계 값들에서 ndc로 바꾸고 vp 역행렬로 월드 좌표를 구하는거
혹시 VS 에서 전갈한 SV_Position 시멘틱 값 보간받아 나온거 넣었다는 말이야? 이해한게 맞나
전달
그걸 내가 해주지는 않고 다렉에서는 연결만 해놓으면 알아서 버텍스를 보간해서 깊이값을 깊이 버퍼에 넣어줘...
[0, 1]로 정규화된 깊이를 넣어주던데 이게 어떤 식으로 변환되는건지는 나도 잘 몰라
어? 자체적으로 타겟에 저장한게 아니라 깊이버퍼를 바로 컴퓨트 쉐이더에 바인딩한거란 말인가 혹시 Copy 한거야? 원래 DepthStencil 용 버퍼는 쉐이더리소스로 바인딩 안될텐데
할수있어 DXGI_FORMAT_R24_UNORM_X8_TYPELESS으로 바인딩하면
원래 포맷이 D24_UNORM_S8_UINT고
렌더 패스에서 렌더 결과물로 나온 깊이 버퍼를 컴퓨트 쉐이더에 바인딩한 상태인거임
카피 리소스 이용해서 올린거는 맞어
그럼 혹시 출력창에 경고는 없고? 타겟에 바인딩된거 안빠졌으면 경고 오류뜨고 있을텐데
D3D 에러 워닝 없어 애초에 그래픽스 디버거로 확인한상태임
애초에 필요한 값이랑 자원들은 다 제대로 올라가는거 확인했음
이상하네... 혹시나해서 C++ 로 행렬연산 테스트 쭉 해봤는데 값만 문제없다면 투영에서 역으로 잘 돌아오는거 확인 했거든 위에 175.223 이 지적한 W 도 어짜피 전체적으로 다같이 나눠져있으니까 상관없고
아 그리고 혹시 모르니까 타겟텍스쳐 width height 는 상수로 넘겨
저거 되게 느려. 어짜피 실시간으로 렌더 해상도 안바뀌는 이상 한번 잡은값으로 상수넘겨서 써
아 그리고 문제는 아닌데 최종 월드좌표에서 w 를 나눌 이유가 없어보이네 어짜피 1 나올거거든
c++ 행렬연산으로 잘 되는건 마지막에 레스터라이저 거쳐가는걸 생각 안해서 그런거 아니야? 그 부분이 문젠거같은데
글쎄.. 깊이버퍼에 저장된 값이 문제가 될 수 있나 근데 사실 나는 깊이버퍼는 랜더링 목적으로만 쓰고 따로 타겟에 자체적으로 깊이 받아서 쓰거든. 그건 확실히 별 문제 없어
근데 뎁스 텍스쳐 말고 그냥 worldPosition 을 그대로 쉐이더로 넘길수는 없음? 쉐이더 잘 모름 미안
깊이버퍼는 렌더하게되면 필연적으로 나오게되는 결과물이라 따로 텍스쳐를 하나 더 만들어서 거기에 포지션을 기록하는것보다 메모리 낭비가 덜하지
근데 너 말대로 그냥 메모리 좀 더 써서 디퍼드 렌더링 하는식으로 할 수도 있기는 함. 걍 내 고집이지
코드 보고 의문이 드는데 mul(mul(ndcCoords, gInvProj), gInvView) 이부분 곱하는 순서가 바뀐거 아님? gInvView -> gInvProj순으로 곱해야 될거 같은데
역순으로 하는거니까 프로젝션부터 하는게 맞지
이전 글에 답변달던 인붕이임. 저녁에 일이있어서 이제왔는데 혹시 해결했음??
해결했음 uint가 float으로 암시적 형변환 되면서 생긴 오류였음...
식도 조금 틀린부분 있었고
프로젝션한 다음에 w로 나누고 뷰행렬 곱하는게 순서였더라
ㅇㅇ hclip 에서 ndc 넘어갈때 w나누기 빠져있는거같아서 그거 말해주려고 했는데 해결했다니 다행이네.