Graphics Programming

GPU 패스 트레이싱 본문

Season 2

GPU 패스 트레이싱

minseoklee 2023. 4. 26. 00:24

패스 트레이싱은 CPU 구현하던 것이 있지만 최근에 하드웨어 가속을 이용해 리얼타임 GPU 패스 트레이싱을 훌륭하게 구현한 사례가 계속 나오고 있고, 사이버펑크 2077의 경우 패스 트레이싱 모드를 출시한 것이 인상깊어서 나도 GPU 구현으로 갈아타기로 했다.

다행히 DXR로 Ray Traced Reflections을, CPU로 패스 트레이싱을 구현했던 적이 있어서 DXR 프로젝트에 CPU 구현을 GPU로 포팅하는 것만으로 기초적인 GPU 패스 트레이싱을 구현할 수 있었다.

모든 표면을 램버트로 강제하여 렌더링한 디퓨즈 글로벌 일루미네이션

마이크로파싯 BRDF를 구현해서 디퓨즈 + 스페큘러 리플렉션을 모두 커버하는 글로벌 일루미네이션

샘플 씬을 렌더링할 수 있을 정도로만 구현했기 때문에 앞으로 다른 샘플 씬들을 렌더링해보면서 빠진 구현을 채워나가야 한다. 디노이징도 해야 하는데, CPU 패스 트레이싱을 만들 때는 인텔의 oidn 라이브러리를 붙였었다. GPU에서는 어떤 디노이저를 가져다 붙일 수 있을지 찾아봐야겠다.

내 CPU 구현에서 이 씬을 이 퀄리티로 그리려면 몇 시간이 걸릴텐데 GPU 구현은 1분 정도 기다리면 이렇게 나온다. 진작 GPU로 갈아탈 걸 그랬나 -_-;;

Comments