레이 트레이싱
손전등 불빛이 거울에 반사되어 눈에 들어오는 길을 거꾸로 더듬어가며 실물 같은 그림자를 그리는 기술이에요.
정의 레이 트레이싱(Ray Tracing, 광선 추적법)은 화면에 보이는 빛의 경로를 눈에서부터 거꾸로 추적해 반사, 굴절, 그림자를 진짜 현실처럼 계산하는 그래픽 영상화 기술이에요. 가상의 빛 알갱이가 사물에 부딪히고 튕기는 과정을 하나하나 시뮬레이션해 극도로 사실적인 입체 장면을 만들어내요.
빛을 거꾸로 따라가는 카메라
현실에서는 태양이나 전등 같은 광원에서 수많은 빛이 쏟아져 나와 사물에 부딪힌 뒤 우리 눈에 들어와요. 하지만 컴퓨터가 광원에서 출발하는 우주의 모든 빛을 계산하려면 연산량이 너무 방대해 감당할 수 없어요.
그래서 레이 트레이싱은 영리하게 방향을 뒤집었어요. 광원이 아니라 우리 눈에서 출발한 가상의 광선을 거꾸로 쏘아 보내는 방식이에요.
눈에서 쏜 광선이 가상 공간의 물체에 부딪히면 물체의 색을 확인하고, 그 물체가 조명으로부터 빛을 받고 있는지 다시 확인해요. 우리 눈에 실제로 들어오는 유효한 빛의 경로만 콕 집어서 계산하므로 낭비되는 연산을 획기적으로 줄여줘요.
기존 방식과 무엇이 다를까요?
오랫동안 3D 게임은 래스터화(Rasterization)라는 방식을 써왔어요. 3차원 입체 도형을 2차원 화면에 납작하게 펼쳐놓은 뒤, 색칠과 그림자 효과를 덧바르는 방법이에요.
래스터화는 계산 속도가 무척 빨라 실시간 게임에 알맞았지만 분명한 한계가 있었어요. 거울에 비친 방 뒷모습이나 유리잔을 통과하며 꺾이는 빛처럼 복잡한 빛의 움직임은 미리 짜놓은 눈속임 효과로 흉내 낼 수밖에 없었거든요.
반면 레이 트레이싱은 빛의 물리 법칙을 직접 계산해요. 유리창에 비치는 내 모습, 물웅덩이에 반사되는 화려한 네온사인, 물체 뒤편에 자연스럽게 번지는 부드러운 그림자를 속임수 없이 완벽하게 표현해 내요.
조금 더 정확히 말하면: 왜 이제야 쓰일까요?
레이 트레이싱은 1960년대 후반에 이미 아이디어가 나온 오래된 기술이에요. 하지만 과거에는 극장용 3D 애니메이션이나 영화 특수효과처럼 미리 시간을 들여 만드는 작업에서만 쓰였어요. 영화의 한 장면(1프레임)을 만드는 데도 컴퓨터 수십 대가 며칠 동안 계산해야 했기 때문이에요.
초당 60장 이상의 화면을 그려내야 하는 실시간 비디오 게임에서는 엄두도 내지 못했어요. 수천만 개의 픽셀마다 튕겨 나가는 수많은 광선을 즉각 계산하는 일은 컴퓨터에 너무 가혹했거든요.
최근 들어 빛 추적 전용 연산 장치를 탑재한 강력한 그래픽 처리 장치(GPU)와 인공지능 화질 복원 기술이 등장했어요. 덕분에 이제는 우리 집 컴퓨터에서도 실시간으로 사실적인 빛을 만끽할 수 있게 되었답니다.
🤔 흔한 오해
레이 트레이싱은 현실처럼 광원에서 출발하는 모든 빛을 그대로 쏘아 보낸다.
광원에서 사방으로 퍼지는 모든 빛을 계산하면 연산량이 너무 커져요. 실제로는 눈(카메라)에서 거꾸로 광선을 쏘아 화면에 보이는 빛의 경로만 선별해 추적해요.
🧺 일상에서 만나요
카메라(눈)에서 가상의 광선을 역으로 쏘아 빛의 반사와 그림자를 물리 법칙대로 정밀하게 계산하는 그래픽 기술이에요.