DirectX Raytracing – GBuffer로부터의 raytracing

i7 8700K , GTX1660TI , 1920×1200 해상도에서 두 가지 방식으로 테스트.

[화면으로부터 raytracing]
화면 픽셀로부터 카메라 방향으로 첫번째 TraceRay()호출.
충돌하는 지오메트리가 있으면 GI, 반사, 그림자 등을 계산하기 위해 두번째 TraceRay()호출
35fps , GPU점유율 89%

[GBuffer로부터 raytracing]
GBuffer(diffuse, normal, depth)로부터 픽셀을 읽어서 depth값 < 1 이면 ray가 hit한 것으로 간주.
GI, 반사, 그림자등을 계산하기 위해 첫번째 TraceRay() 호출.
56fps , GPU점유율 85%

GBuffer로부터 raytracing을 시작하는 편이 raytracing단계만 놓고 보면 훨씬 빠르다.
같은 품질일때 recursion depth가 무조건 하나 줄어드니까. 다만 화면으로부터 raytracing을 바로 시작하는 경우는 GBuffer구축 비용이 대폭 줄어들기 때문에 실제 성능차이는 크게 나지 않을수도 있다.
지금은 일단 GBuffer는 무조건 구축하게 되어있다. 그런데 raytracing쪽이 rasterize보다 압도적으로 부하가 크니까 여전히 50%이상 GBuffer쪽이 빠를것 같아…


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

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

Google photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중