D3D12 엔진 제작기 (12) - 레이트레이싱 적용(2)

신재혁·2024년 7월 29일
0

D3D12

목록 보기
7/10

Raytracing

메시의 VertexBuffer, IndexBuffer, Texture같은 셰이더 리소스들을 바인딩하는데 성공하였다.

생각보다 엄청 까다로운 작업이었다. 셰이더 안의 TraceRay함수 파라미터를 잘 맞춰주고, LocalRootArgument와 GlobalRootSignature를 shader bind table에 제대로 바인딩 시켜주어야 해서 처음 다루는 입장에서는 엄청 까다로웠다.

하필이면 LocalRootSignature를 초기화할 때 InitAsConstants()의 파라미터를 잘못줘 실제 LocalRootArgument의 크기와 달라 제대로 바인딩 안되는 문제가 생겨 해결하기 위해 하루동안 엄청 고생했다.

InitAsConstants()는 파라미터로 Constants의 크기를 주어야한다. 당연히 sizeof(CB)처럼 사이즈를 Byte단위로 줘야 하는 줄 알았는데, 알고보니 4Byte 크기로 줘야 한다는걸 자세히보니 알게 되었다.

모두 처음 사용하는 함수를 쓸때는 설명을 잘 읽자...

profile
이메일: tlswogur1010@gmail.com

0개의 댓글

관련 채용 정보