레이 트레이싱(Ray tracing) vs 패스 트레이싱(Path tracing) 차이점
레이 트레이싱과 패스 트레이싱은 컴퓨터 그래픽스에서 현재 가장 폭넓게 많이 쓰이는 렌더링 기술들이다.
Ray
우선 레이(ray)란 광원에서 발산된 빛의 길을 ray라고 한다.
실제로 빛은 물리적으로 물체에 부딪혀 흡수되거나 반사, 굴절등을 겪으며 주변광 혹은 그림자등을 만든다.
이런 실제 빛의 물리적인 동작을 모방하여 흉내 낸 기술이 ray tracing, path tracing이며, 좀 더 위로는 Global illumination(GI)라는 상위 개념이 있다.
(GI에 대해서 따로 포스팅 예정)
우선 두 기술의 공통점은 리얼리스틱한 GI(Global illumination)를 렌더링 하기 위한 기술이라는 점이다.
그리고 path tracing과 ray tracing 두 기술 모두 카메라에서 씬으로 ray를 쏘아 해당 레이가 씬 내의 오브젝트들과 부딪히는 지점에서 라이팅 처리를 하여 해당 지점 스크린 픽셀에 색을 결정한다.
그리고 이 레이는 오브젝트와 부딪히고 나서 바운스 되며 씬 내부를 휘젓고 다니며 부딪히는 영역마다 위와 같은 라이팅처리를 반복한다.
차이점
여기서 레이 트레이싱과 패스 트레이싱은 스크린에서 쏘는 ray의 개수와 오브젝트들과 바운스 되는 횟수가 다르다.
각 픽셀별로 레이 트레이싱은 적은 개수의 레이를 쏜다. 반면 패스 트레이싱은 수 백, 수 천 개의 레이를 쏜다.
그리고 가장 큰 차이는 직접광과 간접광에 대한 부분이다.
직접 광(Directional Light), 간접 광(Indirectional Light)
리얼리스틱한 렌더링을 위해서는 두 라이팅이 적절하게 잘 혼합되어야 한다.
패스 트레이싱의 경우 좋은 퀄리티에 Indirectional Light을 렌더링 하기에 유리하다.
패스 트레이싱은 픽셀당 무수히 많은 레이를 쏘고 샘플링 과정에 Monte carlo적분이라는 기술이 베이스로 사용된다.
그러나 처리 과정이 상당히 무겁기에 리얼타임에서는 쓰이지 못하고 오프라인 렌더링 기술로 사용되고 있다.
반면에 레이트레이싱은 Directional Light, reflection, refraction과 같은 처리는 가능하나 soft shadow, color bleeding, Indirectional Light등과 같은 처리하기가 어렵다.
보통 리얼타임 렌더링으로 레이트레이싱을 사용하며 간접광 처리를 위해 라이트 매핑, 라이트 프로브 같은 기술을 혼용하여 사용한다.
https://hub1234.tistory.com/58
참고글 그리고 ChatGPT
Ray Tracing vs. Path-Tracing: What's the Difference?
Path Tracing vs. Ray Tracing, Explained
Disney's Practical Guide to Path Tracing
'개발이야기' 카테고리의 다른 글
순열(Permutation)과 조합(Combination)에 대해 이해하기 (0) | 2022.10.27 |
---|---|
디퍼드 렌더링, 포워드 렌더링이란? 그리고 차이점에 대해서 (0) | 2022.09.30 |
벡터의 내적(dot product) 한방에 이해하기 (1) | 2021.12.29 |
[게임수학]라디안(호도법)이 뭐라고 ? (0) | 2021.12.25 |
UTF-8, 유니코드(UniCode)에 대하여 (0) | 2021.12.17 |
댓글