2022. 3. 8. 16:11ㆍdirect3D 11
안녕하세요
지끔까지 저는 direct 하면서 실행한 결과물을 캡쳐한후에 포토샵에서 RGB값을 비교하면서 디버깅을 했었는데요
이게 너무 한정적인 정보를 보는거라 다르게 디버깅하는 방법이 없을까하고 뒤져보다가
그래픽 디버깅이라는 방법을 알아서 공유하려고 합니다
일단 선언이 필요한데요
저 변수들이 어떤역활을 하는지는 저도 모릅니다. (궁금하신분은 찾아보세요 각자 쓰임새가 있겠죠)
D3DX11CompileFromFile()함수안에 저렇게 선언한 변수를 넣어주시고
디버그 -> 그래픽 -> 그래픽 디버깅시작을 누르시거나 Alt+F5를 누르셔도 됩니다.
누르시면 일반 실행시켰을 때와 똑같이 나오게 됩니다.
이 상황에서 새로 열린창의 프레임 캡쳐를 누르시면 한개의 프레임이 캡쳐됩니다.
그리고 캡쳐한 프레임을 클릭하시면
이런 창이 열리는데요
여기에서 원하는 픽셀에 마우스를대고 클릭하시면 십자가 모양이 이동하면서 선택한 픽셀이 바뀌게 됩니다.
그후에 캡쳐한 화면 오른쪽 창에서 DrawIndexed->삼각형(설정에따라 삼각형이 아닐수있음)에 들어가시면
이런 화면이 나오게 되는데요
이 화면에서 꼭짓점 셰이더 or 픽셀 셰이더 개체옆에있는 초록색 삼각형을 클릭하시면 shader를 디버깅 하실수있습니다
이렇게 input으로 들어오는 삼각형의 값과 MVP(Model, View, Proj matrix)의 값을 확인할 수도 있고
화살표 멈춘거 보이시나요?
일반 디버깅하는것처럼 한줄씩 실행하면서 값이 변하는것도 확인할수 있습니다.
캡쳐한 창 왼쪽에있는 이창은 어떤 model을 어떤 pass에서 확인할건지 선택해주는 곳인데요
저는 shadow와 반사까지 구현한 코드라서 2개의 패스고 주전자와 바닥해서 2개의 모델이 있습니다.
첫번째 pass에서 주전자 index를 클릭하면
이런식으로 shadow map이 나오는것도 확인할수 있구요
만약에 DrawIndexed->삼각형 -> 초록색 삼각형 클릭하셨는데 이런 창이 나오신다면
현재 디버깅 하려는 shader의 이름을 위에 파일이름으로 변경해서 복사한후 선택하시면 됩니다.
캡쳐해서 포토샵으로 RGB값만 확인하는것보다 shader에서 값을 확인할수있다보니 활용방법은 정말 많습니다.
shader를 처음 만지시는분께는 정말 유용하리라 생각되서 올리네요
감사합니다
'direct3D 11' 카테고리의 다른 글
d3d11 resource를 파일로 저장하기 (0) | 2022.05.20 |
---|---|
d3d 11 Texture2DMS, texture2DArray, 사용법 (0) | 2022.05.03 |