Artoke

레이 트레이싱: 빛을 따라가서 그림을 그리는 마법

레이 트레이싱: 빛을 따라가서 그림을 그리는 마법

게임이나 영화 속 물방울이 반짝이고, 유리컵에 빛이 비치는 걸 본 적 있나요? 컴퓨터는 어떻게 그렇게 진짜 같은 그림을 만들까요? 그 비밀 중 하나가 바로 레이 트레이싱이에요. 오늘은 이 마법을 아주 쉽게 알아볼게요.

레이 트레이싱이 뭐예요?

레이 트레이싱을 우리말로 풀면 "빛줄기(레이) 따라가기(트레이싱)"예요. 컴퓨터가 빛이 어디로 가는지 하나하나 따라가면서 그림을 그리는 방법이지요.

비유를 들어볼게요. 캄캄한 방에서 손전등을 켜면 빛줄기가 쭉 뻗어 나가요. 그 빛이 벽에 닿으면 벽이 밝아 보여요. 컴퓨터도 이렇게 빛줄기를 상상으로 쏘아서, 어디가 밝고 어디가 어두운지 계산해요.

우리 눈은 어떻게 볼까요?

사실 진짜 빛은 전구에서 출발해서 물건에 부딪히고, 그다음 우리 눈으로 들어와요. 그런데 컴퓨터는 이걸 거꾸로 해요. 눈에서 출발한 상상의 빛줄기를 쏘는 거예요. 왜냐하면 눈에 안 들어오는 빛까지 다 계산하면 너무 오래 걸리거든요.

이 아이디어는 아주 오래전 화가들도 썼어요. 옛날 화가들은 눈과 그리려는 물건 사이에 유리창을 두고, 그 창에 비친 대로 선을 따라 그렸어요. 눈에서 물건까지 실을 이어 보면, 그 실이 창을 지나는 자리에 점을 찍는 거예요.

옛날 화가가 눈과 물건 사이에 실과 창을 두고 그림을 그리는 장치
Dürer woodcut of Jacob de Keyser's invention. With de Keyser's device, the artist's viewpoint was fixed by an eye hook inserted in the wall. This was joined by a silk string to a gun sight–style instr · 출처: 레이 트레이싱의 원리

그림으로 이해하기

아래 그림을 볼까요? 눈에서 화면(창문)을 지나 물건으로 빛줄기가 뻗어 나가요. 화면은 우리가 보는 화면 속 그림이고, 그 화면의 작은 칸 하나하나가 바로 픽셀이에요.

레이 트레이싱: 빛을 따라가서 그림을 그리는 마법 도식

빛줄기가 초록 공에 닿으면 "여기는 초록색이구나" 하고 알아내요. 이렇게 화면의 모든 칸마다 빛줄기를 쏘아서 색을 정하면, 한 장의 그림이 완성돼요.

그림자와 반짝임은 어떻게 만들까요?

빛줄기가 공에 닿은 자리에서, 컴퓨터는 다시 물어봐요. "여기서 전등이 보일까?" 만약 다른 물건이 앞을 가로막고 있으면 전등이 안 보이겠죠? 그러면 그 자리는 그림자가 돼요.

거울이나 반짝이는 물건에 닿으면, 빛줄기가 튕겨서 또 다른 곳으로 날아가요. 마치 공이 벽에 부딪혀 튕기는 것처럼요. 그래서 거울 속에 비친 모습까지 그릴 수 있어요. 유리처럼 투명한 물건은 빛이 꺾여서 통과해요. 물속의 빨대가 휘어 보이는 것과 같은 원리예요.

왜 컴퓨터가 힘들어할까요?

화면 한 장에는 픽셀이 수백만 개나 있어요. 그 하나하나마다 빛줄기를 쏘고, 튕기고, 그림자를 확인하려면 계산이 엄청나게 많아요. 그래서 예전에는 사진 한 장 그리는 데도 아주 오래 걸렸어요.

요즘은 그래픽 카드(GPU)라는 특별한 계산 도구가 이 일을 아주 빠르게 해줘요. 엔비디아 같은 회사가 만든 그래픽 카드 덕분에, 이제는 게임을 하는 도중에도 실시간으로 레이 트레이싱을 할 수 있게 되었어요.

움직이는 그림도 만들 수 있어요

영화나 애니메이션은 그림 여러 장을 아주 빠르게 넘겨서 움직이는 것처럼 보이게 해요. 옛날 사람들은 공책 모서리에 조금씩 다른 그림을 그려 넘기는 플립북으로 이걸 즐겼어요.

종이를 빠르게 넘겨 움직이는 그림처럼 보이게 하는 플립북
Flip book created in 1976 at Caltech · 출처: 레이 트레이싱의 원리

컴퓨터도 똑같아요. 레이 트레이싱으로 그린 그림을 1초에 수십 장씩 만들어 이어 붙이면, 물이 흐르고 공이 굴러가는 움직이는 장면이 완성돼요.

정리해요

레이 트레이싱은 이렇게 정리할 수 있어요.

  • 눈에서 화면의 픽셀을 지나 빛줄기를 쏜다.
  • 빛줄기가 물건에 닿으면 그 색을 알아낸다.
  • 전등이 가려지면 그림자, 튕기면 반사, 꺾이면 투명 효과가 생긴다.
  • 모든 픽셀을 채우면 진짜 같은 그림 한 장이 완성된다.

다음에 게임 속 물웅덩이에 하늘이 비치거나, 유리창에 빛이 반짝이는 걸 보면 떠올려 보세요. 그건 컴퓨터가 수많은 빛줄기를 부지런히 따라간 결과랍니다!

출처

광고

리깅 파이프라인 자동화 도구

반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.

리깅 도구 보기