용어설명

RTX 그래픽카드 용어 – 1부 : 레이 트레이싱 (Ray Tracing)

올해 NVIDIA에서 새로 출시한 GPU들은 레이 트레이싱(Ray Tracing) 기술이 적용됐다고 엄청 홍보하고 있죠. 하지만 기존에 3D 그래픽을 다뤄본 경험이 있지 않은 이상 레이 트레이싱이라는 기술이 정확히 어떤 것인지 알고 있는 경우가 드뭅니다.

원론적인 부분까지 파고들면 지나치게 복잡하기도 하거니와 저도 이해하기 힘든 영역이기 때문에 이번 포스트에서는 간단히 표면적인 개념에 대해서만 소개될 예정입니다.

일단 레이 트레이싱에 대해 이해하기 위해서는 3D 그래픽이 어떻게 평면의 화면에 구현이 되는지, 그리고 기존의 래스터화(Rasterization) 기술에 대해서 약간의 설명이 필요할 것 같네요.

[ 목차 ]​

1. 렌더링이란?

2. 래스터화 (Rasterization)

3. 레이 트레이싱 (Ray Tracing)

4. 개인적인 견해

[ 1. 렌더링이란? ]​

네이버 지식백과에서 제공해주는 “렌더링”이라는 단어에 대한 정의는 다음과 같습니다.

< 평면인 그림에 형태·위치·조명 등 외부의 정보에 따라 다르게 나타나는 그림자·색상·농도 등을 고려하면서 실감 나는 3차원 화상을 만들어내는 과정 또는 그러한 기법 >

기본적으로 컴퓨터의 모든 데이터는 “0”과 “1”로 구성된 이진수 데이터입니다. 이 정보를 활용해서 실제로 눈에 보이는 그래픽으로 모니터에 출력해내는 과정이 렌더링이라 생각하면 이해가 쉽지 않을까 싶네요.

3D 그래픽은 기본적으로 좌표의 연산입니다. 좌표 여러 개를 찍어서 선으로 연결하면 특정한 형태가 그려지게 됩니다. 이 단계의 그래픽 표현을 “와이어 프레임 렌더링”이라고 하는데, 가장 기본적인 3D 그래픽의 뼈대라고 봐도 무방하죠.

와이어 프레임 뼈대 위에 원하는 색이나 패턴을 입히는 것을 텍스처 매핑(Texture Mapping)이라 하고, 그 텍스처에 원하는 질감을 넣거나 효과를 추가하는 과정을 셰이딩(Shading)이라고 합니다. 물론 매핑과 셰이딩의 기법과 종류는 무수히 많지만 대략적인 개념만 보자면 이렇게 요약해도 되겠네요.

이렇게 연산된 3D 이미지를 평면 모니터에 시각적으로 표현하는 방법이 여러 가지가 있는데, 그중 하나가 바로 이번 포스트에서 다루게 될 래스터화(Rasterization)과 레이 트레이싱(Ray Tracing)입니다.

[ 2. 래스터화 (Rasterization) ]​

기본적으로 사람의 눈으로 3차원의 사물을 보게 되면 그 물건을 바라보는 시점, 각도, 광량에 따라서 뇌에서 인지되는 이미지가 달라집니다. 사람의 눈이 비록 3차원의 사물을 인지한다 하더라도 결국 뇌에서는 2차원의 이미지 형태로 표현되기 때문이죠.

이처럼 연산된 3D 오브젝트를 2D의 이미지로 연산해서 픽셀로 표현하는 방식이 바로 래스터화입니다.

래스터화는 3D 오브젝트 중에서 단순히 현 시점에서 보이는 2D 단면만 모니터에 출력하면 되기 때문에 비교적 연산 부하가 적은 편입니다. 이 때문에 1초당 표현하는 프레임이 많을 수밖에 없는 3D 게임을 렌더링 할 때 주로 사용되는 방식이고요.

래스터화의 단점이라면 빛의 반사에 대해서 연산하는 장치가 거의 없기 때문에 3D 오브젝트를 디자인할 때 환경에 따른 빛의 반사가 어떻게 될지를 예상해서 미리 텍스처 매핑을 해야 합니다. 예를 들어, 햇빛을 받아 반짝이는 것처럼 보이는 돌도 그래픽 디자이너가 그 돌을 매핑할 때 “이 각도에서 볼 때 이렇게 빛나야 하니까 애초에 이쪽 매핑을 밝게 해야겠다”라고 의도적으로 만들었기 때문이라는 거죠.

간단히 말하자면, 3D 게임에서 보이는 빛의 반사는 그래픽 디자이너가 의도적으로 배치한 착시현상이지, 컴퓨터에서 “빛이 여기에서 이렇게 반사되면 이렇게 보이겠다”라고 스스로 연산해서 표현되는 것이 아닙니다.

그러면 게임에서 가끔 등장하는 “거울 반사” 효과는 래스터화로 어떻게 표현한 것인지에 대한 의문이 생길 수 있는데, 이는 거울이 플레이어의 모습이 담긴 동영상을 재생하고 있는 상태라고 생각하면 이해가 쉽습니다. 플레이어에게 비치는 빛이 거울에 반사됐을 때 어떻게 보이는지에 대한 복잡한 연산 과정을 다 건너뛰어 버리는 거죠.

이처럼 래스터화 3D 그래픽의 빛 반사는 “인공적”인 눈속임이기 때문에 복잡한 반사면에 대한 표현이 힘듭니다. 물론 천재적인 그래픽 디자이너가 자연스러운 반사광처럼 보이는 텍스처를 노가다식으로 일일이 매핑 한다면 모를까요…

조금 설명이 복잡해지는 것 같으니, 간단히 요약하자면 :

– 래스터화는 단순히 3D 오브젝트를 평면 화면에 픽셀로 연산하는 과정

– 빛에 대한 별도의 연산이 없기 때문에 애초에 오브젝트가 자연스럽게 반사되는 것과 같아 보이는 텍스처를 미리 입혀야 함

– 렌더링에 필요한 연산이 적음 / 대신에 자연스러운 빛 표현이 힘듬

– 1초당 최대 60~140장의 장면을 그려내야 하는 게임에서는 연산 부하가 적은 래스터화 기법을 사용

정도로 생각하고 계셔도 뒤에 나올 레이 트레이싱에 대한 이해에는 지장이 없을 것 같네요.

[ 3. 레이 트레이싱 (Ray Tracing) ]​

사실 레이 트레이싱이 엄청난 신기술은 아닙니다. 3D 애니메이션, 설계 작업에서는 이미 널리 쓰이고 있었죠. 대표적으로 Pixar나 디즈니의 3D 애니메이션도 최종 렌더링을 할 때 레이 트레이싱 기법을 사용했습니다.

레이 트레이싱은 광원을 인식해서 빛의 반사를 실시간으로 연산해서 표현한다는 점이 래스터화 기법과 가장 큰 차이점입니다. 빛이 비쳤을 때 어떻게 표현될지는 연산과정 중에 결정되기 때문에 텍스처를 매핑할 때 의도적으로 일부분을 밝거나 어둡게 미리 표현해둘 필요가 없어지게 되는 거죠.

하단에 보이는 샘플샷에서 보면 래스터화 그래픽은 그래픽을 매핑할 때 미리 반사를 고려해서 매핑하지 않으면 애초에 반사가 표현되지 않습니다. (주전자에 찻잔의 반사가 없음) 하지만 레이 트레이싱에서는 빛의 반사가 자동으로 표현되기 때문에 주전자의 표면에 찻잔의 반사가 보이게 됩니다.

3D 오브젝트를 사실적으로 표현하기 위해서는 빛의 표현이 매우 중요합니다. 이 때문에 사실적인 3D 그래픽을 묘사하기 위해서는 레이 트레이싱이 래스터화보다 우위일 수밖에 없고요. 이번 RTX 발표회에서 제공된 비교 영상을 한번 보시면 어떤 부분에서 차이가 나는지 확인할 수 있습니다.

자, 그러면 3D 오브젝트의 매핑 작업도 수월해지고, 빛 표현도 자연스럽고, 반사에 대한 표현의 폭이 넓어지는데 왜 지금까지 게임 그래픽에 레이 트레이싱 기법을 사용하지 않았을까요?

네, 당연히 빛에 대한 계산을 하는데 들어가는 연산이 엄청나게 방대하기 때문입니다. 위에 예로 들었던 3D 애니메이션들도 1개의 프레임을 렌더링하는데 제작 당시의 고성능 컴퓨터로도 꼬박 하루가 걸린다고 합니다. 1초에 60프레임 이상을 뽑아내야 하는 게임에서 사용하기에는 많은 무리가 있죠.

하지만 이번에 NVIDIA가 새 GPU 시리즈를 발표하면서 이 레이 트레이싱 기법을 실시간 게임에 적용할 수 있게 만들었다고 호언장담하면서 갑자기 해당 분야에 대한 관심이 폭발하게 된 것이 지금의 현 상황이라 할 수 있겠습니다.

물론 섬세한 정지 화면을 렌더링하는 수준의 빛 표현은 힘들기 때문에 광원을 많이 축소해서 연산한다고는 하네요. 그래도 기존에 불가능했던 반사광이나 표면의 입체감 표현이 가능해졌다는 측면에서는 충분히 의미가 있지 않을까 싶긴 합니다.

[ 4. 개인적인 견해 ]​

레이 트레이싱이 게임에 적용되면서 그래픽적인 표현의 영역이 넓어지는 것은 분명 환영할만한 일입니다. 하지만 개인적으로는 아직 이 기술이 상용화되기까지는 한참 남았지 않나 하는 생각이 드네요.

우선 레이 트레이싱 기능을 사용하기 위해서는 게임의 텍스처 매핑도 이에 맞게 설계되어야 합니다. 이렇게 되면 개발사 입장에서는 레이 트레이싱 모드 매핑과 일반 래스터화 매핑을 이중으로 작업해야 되기 때문에 게임 제작에 필요한 비용이 증가하게 된다는 점이 가장 큰 문제일 것 같네요.

물론 RTX 그래픽카드가 널리 보급돼서 레이 트레이싱 매핑만 만들 수 있는 환경이 조성된다면 모를까, 향후 게임 제작사들이 굳이 이중으로 작업하면서 아직 제대로 보급되지도 않은 레이 트레이싱 기술을 지원해줄지가 의문입니다.

두 번째 문제는 얻는 그래픽적인 이득에 비해 요구되는 컴퓨터의 사양이 너무 높다는 점입니다. 2019년 초반에 출시 예정인 메트로 엑소더스라는 게임도 레이 트레이싱을 지원할 예정인데, 현재 시연을 위해 제작된 데모 게임을 레이 트레이싱 모드로 플레이하면 최상위 RTX 2080ti 그래픽카드를 사용해도 60FPS를 뽑아내지 못하는 모습을 보여줍니다.

레이 트레이싱으로 인해 얻을 수 있는 게임 내의 효과에 비해 희생해야 되는 부분도 분명 있고, 향후 게임들이 레이 트레이싱을 제대로 지원해줄지 미지수인 상태에서 아직은 이 기능만을 위해서 RTX 그래픽카드를 구매하는 것은 분명 무모한 선택 같아 보이긴 합니다.

RTX 그래픽카드 용어정리 2부에서는 DLSS(Deep Learning Super Sampling)에 대해 다루게 될 예정인데, 오히려 DLSS 기능이 NVIDIA 발표 이벤트에서 실컷 자랑한 레이 트레이싱보다 훨씬 기대되는 기술이지 않을까 싶네요.

[링크] 용어설명 – DLSS

질문이나 피드백, 오류 지적은 언제나 환영입니다. 포스팅 내용이 도움이 되셨다면 주변 사람들에게 공유해주시면 감사하겠습니다!

댓글 / Comments