Blog
개발중인 미완성 페이지로, 일부 기능이 동작하지 않을 수 있습니다.

레이트레이싱이란?

2024. 6. 17.|2024. 10. 6.

그래픽스에서의 레이트레이싱에 대해 아주 간단히 알아보자.

목차

세 줄 요약

  • 렌더링 방법 중 하나 (렌더링 = 씬으로부터 영상(이미지) 생성)
  • 광선이 물체에서 반사되어 카메라에 들어오는 과정(물리적인 움직임)을 역으로 시뮬레이션
  • 반사, 굴절, 그림자를 정확하게 재현할 수 있어 사실적인 이미지를 생성할 수 있음

정의

In 3D computer graphics, ray tracing is a technique for modeling light transport for use in a wide variety of rendering algorithms for generating digital images.

- 출처: 위키백과

3D 컴퓨터 그래픽에서 레이트레이싱은 디지털 이미지 생성을 위한 다양한 렌더링 알고리즘에 사용하기 위해 빛 전달을 모델링하는 기술이다.

레이트레이싱은 정확히 어떤 알고리즘을 가리키는 것이 아니고, Path tracing이나 Photon mapping같은 여러 갈래가 있다.

Rasterization 대비 장단점

Rasterization도 렌더링 방법 중 하나이다. 주로 게임 등 실시간 그래픽에 쓰인다.

Rasterization은 실제 빛의 물리적 움직임을 시뮬레이션하기보다는, 대충 비슷하게 보이는 꼼수(공학적 기법)에 더 가깝다

레이트레이싱은 비교적 사실적이지만 연산이 무거워 시간의 영향을 많이 받는 탓에 주로 오프라인 렌더링(영화 등)에 쓰인다.

장점

  • 기본적으로 비교적 사실적이다
  • 그림자 구현이 쉽다
  • 임의의 곡면에 대한 반사 및 굴절 구현이 가능하다

단점

  • GPU를 잘 활용하기 어렵다
  • 연산이 비교적 무겁다

기본 알고리즘

실제로 우리 눈에 물체가 보이는 원리는, 광원에서 나온 빛이 물체에 반사되어 눈에 들어오는 것이다.

레이트레이싱은 이 과정을 역으로 시뮬레이션한다.
즉, 카메라(눈)에서 광선을 쏴서, 어떤 물체에 부딛히는지 확인하고,
그 부분에 광원에서 나오는 빛이 부딛히는지 확인해 색상을 결정한다.

모든 픽셀마다 광선을 발사해서, 광선이 닿는 물체에 따라 해당 픽셀의 색을 결정한다.

레이캐스팅과의 차이

레이캐스팅이나 레이트레이싱이나 대충 비슷한데, 보통 레이캐스팅은 빛 반사를 여러번 처리하지 않는다는 정도의 차이가 있다.

레이트레이싱

Comments