광선 추적이란 무엇일까?

naranghae·2020년 12월 21일
0

miniRT

목록 보기
1/10

Ray tracing

이미지의 픽셀 하나하나를 통과하는 광선들이 있다 가정하고 그 광선을 역추적하는 방식이다.

이러한 기술들을 어디다가 사용할까 라고 말한다면 정말 많은 곳에서 쓰이고 있다.
우선 게임이 대표적인 예시가 된다. 그리고 실제 집을 3D모델링을 할 때도 쓰일 수 있다.
현실의 빛의 움직임을 컴퓨터로 만들어내는 작업이라고 말할 수 있다.

이러한 영상을 보면 정말 대단하다는 생각 밖에 안든다.
https://www.youtube.com/watch?v=rZsQSJn7hJk&ab_channel=%EB%B0%A9%EC%95%97%EA%B0%84%EB%B9%84%EB%91%98%EA%B8%B0

출처: wikipedia Ray tracing

레이트레이싱은 라디오 시티 알고리즘과 더불어 대표적인 전역 조명 기법이다.
광선을 장면으로 확장하고 표면과 광원을 향해 반사하여 픽셀의 색상 값에 근접하여 이미지를 만든다.

먼저 가상 카메라를 둔다. 내가 보는 방향을 의미한다.
그리고 이미지를 형성할 평면을 세운다. 여기서 카메라로 물체를 바라볼 때와 평면이 수직이 되게 한다. 이미지 평면을 봤을 때 뒤에 있는 물체는 픽셀로 나타내며 각 픽셀들은 바라보는 방향의 색깔들로 나타내어진다.
RT는 화면상의 물체와 이 광선 사이에서 제일 가까운 교점을 계산한다. 그 다음, 그 점에서 교차하는 대상의 색깔을 정하고 그 색깔로 지정한다.

빛의 반사 & 광선

카메라로 돌아가는 빛의 양은 세 가지 요인에 달려있다.

  1. 그 점으로 빛이 얼마나 떨어지나.
  2. 그 점에서 표면상의 물체는 어떻게 빛을 반사하나.
  3. 카메라는 어디에 있나.

여기에 비치는 대상이 빛을 분산시키는 물체인지 반사시키는 물체인지 알아야 한다.
가령 테니스 공에 빛을 비추면 분산되어 반짝이지 않지만 당구공 같은 경우에는 빛이 반사되어 반짝이는 부분이 존재한다. 이같이 어떤 물체를 비추는가도 중요한 요인으로 들어간다.
이점을 떠올리며 과제를 진행해 나가야 한다.

첫번째 요인에서 광선이 쏘아서 물체에 도달했을 때 점이 광원으로 보이는지 RT가 확인해야한다.
RT는 그림자로 가려진 점에서 시작하여 광원 방향으로 나아가는 광선을 형성한다.
이같이 광원 방향으로 나아가는 광선을 그림자 광선이라 한다.
그리고 직접 조명과 간접 조명이라는 개념이 있다.
직접 조명은 말 그래로 빛이 그대로 물체에게 전달되는 걸 뜻하고 간접 조명은 방송에서 흔히 쓰이는 반사판 같은 것이 간접 조명이다.
RT 과제에서 이러한 조명들을 유의하여 풀어나가야 한다.
굴절, 반사, 흡수를 잘 생각해야겠다.

몬스터 대학교 영화에서 어떻게 렌더링하는지 설명한 것이 있다.
우선 각 픽셀에서 카메라에서 시작하여 픽셀을 지나치고 정면으로 향해가는 광선 사이의 교점을 구한다.
다음 각 표면의 색깔이 무엇인지 알아보고 설정한다. 그리고 표면이 빛에 어떻게 반응하는지 결정한다.(분산과 반사로 나누어서 생각한다.)
분산을 했을 때 하얗게 빛나는 부분은 가상 카메라로 보는 방향에서는 흐릿한 부분일 것이다.
그리고 직접적인 광원을 두고 나오는 분산광, 간접광, 정반사광을 전부 합하면 완성된 이미지가 나오게 된다고 한다.

miniRT는 이같이 현실이 아닌 곳을 보다 현실적으로 만드는 마법같은 과제라 생각한다!
함 마법좀 부려보자!

출처: https://ko.khanacademy.org/partner-content/pixar/rendering/rendering1/v/render-4

profile
오늘보다 더 나은 내일

0개의 댓글