DirectX Raytracing 샘플소스 5분 분석 소감.

DirectX Raytracing 샘플 소스 잠깐 보고 날림으로 분석한 소감.

1) ID3D12Device로부터 QueryInterface() 해서
ID3D12RaytracingFallbackDevice포인터 얻음.

2) ID3D12RaytracingFallbackDevice로부터 QueryRaytracingCommandList()를 호출해서 ID3D12RaytracingFallbackCommandList포인터를 얻음.

3) D3D12_RAYTRACING_GEOMETRY_DESC구조체에 지오메트리 데이터(삼각형데이터)를 채워서 블라블라 커맨드로 전달할 지오메트리 데이터들을 만듦.

4) 위에서 만든 지오메트리 데이터를 ID3D12RaytracingFallbackCommandList::BuildRaytracingAccelerationStructure()에 넣고 호출. 이것으로 레이트레이싱을 위한 d3d12 커맨드 작성임.

5) 위에서 작성한 커맨드리스트를 ID3D12CommandQueue::ExecuteCommandLists()에 넣고 호출.

6) fence걸고 수행이 끝날때까지 대기.

요약)
1) 결국 D3D12의 확장 API라서 D3D12프로그래밍을 할줄 알아야 한다.
2) 이건 추측임. 빠르게 ray 체크 검사를 하기 위해선 뭐가 됐든 공간을 구성하는 트리를 만들어야 하는데 지오메트리 데이터를 만들때 API안에서 해주거나, 커맨드 실행시에 내부에서 해주는것 같다. 아마도 전자인것 같다.


답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중