TV를 켜세요. 좋아하는 스트리밍 서비스를 시작하세요. 콜라를 손에 드세요. 이 시대의 가장 중요한 시각적 기술의 데모는 거실 소파만큼이나 가깝습니다.
지난 10년 반 동안 컴퓨팅 성능의 폭발적 성장에 힘입어 패스 트레이싱이 비주얼 미디어를 휩쓸었습니다.
이 기술은 블록버스터 대작에 큰 효과를 불어넣고 가장 몰입감 넘치는 멜로드라마에 섬세한 빛과 그림자를 드리우며 애니메이션의 예술을 새로운 수준으로 끌어올렸습니다.
더 많은 것이 다가오고 있습니다.
패스 트레이싱이 실시간으로 진행되면서 동적 조명과 음영, 반사 및 굴절로 가득 찬 사실적인 인터랙티브 3D 환경을 구현합니다.
그렇다면 패스 트레이싱이란 무엇일까요? 패스 트레이싱을 뒷받침하는 아이디어는 매력적일 정도로 간단하며, 지난 50여년에 걸친 예술과 과학의 혁신가들을 연결합니다.
래스터화 및 레이 트레이싱의 차이
우선 몇 가지 용어를 정의하고, 이 용어가 현재 비디오 게임과 같이 사용자의 입력에 실시간으로 반응할 수 있는 인터랙티브 그래픽을 만드는 데 사용되는 방식을 정의해 보겠습니다.
첫째, 래스터화는 단일 관점에서 보는 이미지를 생성하는 기술입니다. 처음부터 GPU의 핵심이었습니다. 최신 NVIDIA GPU는 초당 1,000억 개 이상의 래스터화된 픽셀을 생성할 수 있습니다. 따라서 래스터화는 게이밍과 같은 실시간 그래픽에 이상적입니다.
레이 트레이싱은 래스터화보다 더 강력한 기술입니다. 단일 지점에서 보이는 것을 알아내는 제약에서 벗어나 여러 방향으로 여러 지점에서 보이는 것이 무엇인지 결정할 수 있습니다. NVIDIA Turing 아키텍처에서 시작하여 NVIDIA GPU는 이 어려운 연산을 가속화하기 위해 전문 RTX 하드웨어를 제공했습니다. 현재 단일 GPU는 초당 수십억 개의 광선을 추적할 수 있습니다.
이러한 모든 광선을 추적할 수 있기 때문에 실제 빛이 산란되는 방식을 래스터화로 가능한 것보다 훨씬 더 정확하게 시뮬레이션할 수 있습니다. 하지만 여전히 답할 질문이 남아 있습니다. 빛을 시뮬레이션하고 해당 시뮬레이션을 GPU에 도입하는 방법은 무엇일까요?
레이 트레이싱이란 무엇일까요?
그 질문에 더 잘 대답하려면 지금까지의 과정을 이해하는 것이 좋습니다.
NVIDIA 그래픽 연구 부사장인 David Luebke는 16세기에 북부 유럽 르네상스의 가장 중요한 인물 중 한 명이며 2D 표면에서 3D 이미지를 복제하기 위해 끈과 추를 사용한 Albrecht Dürer로 이야기를 시작하는 것을 좋아합니다.
Dürer는 고전적, 현대적 수학을 예술과 결합하여 표현력과 리얼리즘의 혁신을 이루어 내는 데 일조했습니다.
끈이 중요합니다. Albrecht Dürer는 현재 ‘레이 트레이싱’이라고 불리는 것을 처음으로 설명했습니다. 이는 Underweysung der Messung(뉘른베르크, 1525),f15의 2D 표면에서 3D 물체를 정확하게 표현하기 위한 기술입니다.
1525년, Treatise on Mesurement에서 Dürer는 레이 트레이싱이라는 개념을 처음으로 설명했습니다. Dürer가 이 아이디어를 어떻게 설명했는지 살펴보면 이 개념을 쉽게 이해할 수 있습니다.
빛이 우리 주위의 세상을 어떻게 비추는지 생각해 보세요.
이제 Dürer가 사용했던 끈을 사용해 눈에서부터 빛이 상호 작용하는 대상까지 광선을 추적한다고 생각해 보세요. 그게 레이 트레이싱입니다.
컴퓨터 그래픽스를 위한 레이 트레이싱
Turner Whitted의 1979년 논문 ‘고급 음영 처리된 디스플레이를 위한 개선된 조명 모델’은 레이 트레이싱 르네상스를 개시했습니다.
Dürer가 사망한 지 400년 이상이 지난 1969년에 IBM의 Arthur Appel은 레이 트레이싱이라는 아이디어를 컴퓨터 그래픽스에 도입하여 이를 컴퓨팅 가시성 및 음영에 적용하는 방법을 보여주었습니다.
10년 후, Turner Whitted는 이 아이디어를 통해 반사, 그림자, 굴절을 캡처하는 방법을 최초로 보여주고, 겉보기에 단순한 개념이 어떻게 훨씬 정교한 컴퓨터 그래픽스를 가능하게 만들 수 있는지 설명했습니다. 그 후 몇 년 동안 진전은 빨라졌습니다.
1984년 Lucasfilm의 Robert Cook, Thomas Porter, Loren Carpenter는 레이 트레이싱이 모션 블러, 피사계 심도, 반그늘, 반투명 및 흐릿한 반사를 포함한 여러 일반적인 영화 제작 기법을 통합할 수 있는 방법을 설명했습니다. 지금까지 컴퓨터 그래픽스에서는 얻을 수 없었던 것이었습니다.
2년 후, CalTech 교수 Jim Kajiya의 신선한 7페이지 분량의 논문인 ‘The Rendering Equation‘은 레이 트레이싱을 통해 물리학으로 컴퓨터 그래픽스를 연결하고 패스 트레이싱 알고리즘을 도입하여 빛이 장면 전체에 산란되는 방식을 정확하게 나타냈습니다.
패스 트레이싱이란 무엇인가요?
패스 트레이싱을 개발하는 과정에서 Kajiya는 방사열 전달 연구나 환경 전체에 열이 확산되는 방식과 같은 예상 밖의 영감으로 눈을 돌렸습니다. 그 분야의 아이디어 덕분에 그는 빛이 공기를 뚫고 표면에서 산란되는 방식을 설명하는 렌더링 방정식을 도입했습니다.
렌더링 방정식은 간결하지만 해결하기는 쉽지 않습니다. 컴퓨터 그래픽스 장면은 복잡하며 오늘날에는 수십억 개의 트라이앵글도 드문 일이 아닙니다. 렌더링 방정식을 직접 해결할 방법이 없었기 때문에 Kajiya의 두 번째 중요한 혁신으로 이어졌습니다.
Kajiya는 통계 기법을 사용하여 렌더링 방정식을 해결할 수 있음을 보여주었습니다. 직접 해결되지 않더라도 개별 광선의 경로를 따라 해결할 수 있습니다. 충분한 광선의 경로를 따라 해결되어 장면의 조명에 정확하게 적용할 수 있다면 사실적인 이미지가 가능할 것입니다.
렌더링 방정식이 어떻게 광선의 경로를 따라 해결될까요? 레이 트레이싱입니다.
Kajiya가 적용한 통계 기술은 몬테카를로 통합으로 알려져 있으며, 이는 1940년대의 컴퓨터 초창기로 거슬러 올라갑니다. 패스 트레이싱을 위한 향상된 몬테카를로 알고리즘을 개발하는 것은 오늘날까지도 진행 중인 연구 문제로 남아 있습니다. NVIDIA 연구원들은 패스 트레이싱의 효율성을 개선하는 새로운 기술을 주기적으로 퍼블리싱하며 이 분야의 선두에 있습니다.
장면에서 빛이 이동하는 방식을 설명하는 물리 기반 방정식과 광원으로 돌아가는 관리 가능한 수의 경로를 선택하는 데 도움이 되는 몬테카를로 시뮬레이션이라는 두 아이디어를 통합하여 Kajiya는 사실적인 컴퓨터 생성 이미지를 생성하는 표준이 될 기본 기술에 대해 간략히 설명했습니다.
그의 접근 방식은 다양한 이질적인 렌더링 기술로 지배되는 분야를 하나로 만들었습니다. 이는 실제로 빛이 이동하는 방식의 물리효과를 반영했기 때문에 수많은 시각 효과를 놀라운 수준의 사실성으로 재현하기 위해 적용할 수 있는 단순하고 강력한 알고리즘을 구현할 수 있습니다.
영화에 사용되는 패스 트레이싱
1987년 패스 트레이싱이 도입된 후 몇 년 동안 패스 트레이싱은 가장 정확하고 우아한 기술로 여겨졌지만 완전히 비현실적이었습니다. Kajiya의 원본 논문의 이미지는 256 x 256픽셀에 불과했지만 대부분의 다른 사람들이 사용할 수 있는 컴퓨터보다 훨씬 강력한 고가의 미니 컴퓨터에서 렌더링하는 데 7시간이 넘게 걸렸습니다.
하지만 무어의 법칙에 기반한 컴퓨팅 성능의 증가로 인해 칩 제조사들이 18개월마다 마이크로프로세서의 트랜지스터 수를 두 배로 늘릴 수 있게 된 발전에 따라 컴퓨팅 전력이 기하급수적으로 증가했다고 설명한 이 기술은 점점 더 실용성이 높아졌습니다.
1998년작 A Bug’s Life와 같은 영화를 시작으로, 점점 더 많은 영화에서 컴퓨터 생성 이미지를 향상시키는 데 레이 트레이싱이 사용되었습니다. 그리고 2006년에는 최초로 패스 트레이싱이 적용된 영화인 Monster House가 관객을 놀라게 했습니다. Solid Angle SL(이후 Autodesk에서 인수) 및 Sony Pictures Imageworks에서 공동 개발한 Arnold 소프트웨어를 사용하여 렌더링되었습니다.
이 영화는 전 세계적으로 총 1억 4천만 달러 이상을 벌어들인 히트작이었습니다. 그리고 차세대 컴퓨터 애니메이션이 무엇을 할 수 있는지 보여주었습니다. 컴퓨팅 성능을 더 많이 사용할 수 있게 되면서 더 많은 영화가 이 기술에 의존하게 되었고, 카메라로 캡처한 이미지와 구별할 수 없는 이미지를 생성했습니다.
문제는 단일 이미지를 렌더링하는 데 여전히 몇 시간이 걸리며 ‘렌더 팜’이라 불리는 점점 커지는 서버 컬렉션이 계속 실행되어 이미지를 렌더링해 전체 영화를 제작하는 작업이 몇 달 동안 계속 진행됩니다. 이를 실시간 그래픽에 도입하는 것은 놀라운 도약이 될 것입니다.
게이밍에서의 패스 트레이싱
수년 동안 게임에서의 패스 트레이싱에 대한 생각은 상상도 할 수 없었습니다. 많은 게임 개발자들이 실시간 그래픽을 구현하는 데 필요한 성능이 있다면 패스 트레이싱을 사용하겠다는 데 동의했지만, 패스 트레이싱의 성능은 실시간과는 거리가 멀어 보였습니다.
하지만 GPU는 계속해서 더욱 빨라지고 있으며, 이제 RTX 하드웨어가 광범위하게 사용 가능해짐에 따라 실시간 패스 트레이싱이 눈앞에서 시작되고 있습니다. 영화가 패스 트레이싱으로 전환하기 전에 일부 레이 트레이싱 기술을 통합하기 시작한 것처럼, 게임은 레이 트레이싱을 제한된 방식으로 적용하여 시작했습니다.
현재 점점 더 많은 게임이 부분적으로 레이 트레이싱되고 있습니다. 기존의 래스터화 기반 렌더링 기술과 일부 레이 트레이싱 효과를 결합합니다.
그렇다면 이 맥락에서 패스 트레이싱은 무엇을 의미할까요? 기술의 혼합을 의미할 수 있습니다. 게임 개발자는 주 광선을 래스터화한 다음 장면의 조명을 패스 트레이싱할 수 있습니다.
래스터화는 한 지점에서 한 세트의 광선을 투사하는 것과 동일하며, 첫 광선에 부딪히면 중단됩니다. 레이 트레이싱은 이를 더욱 발전시켜 여러 지점에서 어떤 방향으로든 광선을 비춥니다. 패스 트레이싱은 대규모 조명 시뮬레이션 시스템의 한 구성 요소로 레이 트레이싱을 사용하여 빛의 진정한 물리효과를 시뮬레이션합니다.
몬테카를로 또는 기타 기술을 사용해 장면의 모든 조명이 확률적으로 샘플링되어 직접 조명의 경우 조명 개체 또는 캐릭터를 비추고 전역 조명의 경우 간접 조명이 있는 공간 또는 환경을 비춥니다.
이렇게 하려면 Kajiya가 설명한 것처럼 광선을 한 번의 바운스가 아니라 여러 번의 바운스를 통해 다시 추적해야 합니다.
몇 가지 게임에서는 이미 이 작업을 진행 중이며 그 결과는 놀랍습니다.
Microsoft는 Minecraft에서 패스 트레이싱을 지원하는 플러그인을 출시했습니다.
클래식 슈팅 게임인 Quake II는 고급 그래픽 기술의 샌드박스인 경우가 많으며, 새 플러그인 덕분에 완전하게 패스 트레이싱할 수 있습니다.
아직 할 일이 많습니다. 또한 게임 개발자는 고객에게 패스 트레이싱이 적용된 게이밍을 경험하는 데 필요한 컴퓨팅 성능이 있다는 점을 알아야 합니다.
게이밍은 가장 까다로운 비주얼 컴퓨팅 프로젝트입니다. 빠른 속도의 게이머와 상호 작용하려면 높은 시각적 품질과 속도가 요구됩니다.
이 분야에서 개발된 기술은 디지털 생활의 모든 측면에 도입될 것입니다.
다음 단계는 무엇일까요?
GPU가 계속 더 강력해짐에 따라 패스 트레이싱을 제대로 작동하게 하는 것이 다음 단계입니다.
예를 들어 Autodesk의 Arnold, Chaos Group의 V-Ray 또는 Pixar의 Renderman 등의 도구 및 강력한 GPU로 무장한 제품 디자이너와 건축가는 레이 트레이싱을 사용하여 몇 초 만에 제품의 사실적인 모형을 생성함으로써 협업을 더 잘 수행하고 값비싼 프로토타입을 건너뛸 수 있습니다.
GPU가 더 많은 컴퓨팅 성능을 제공함에 따라 비디오 게임은 레이 트레이싱 및 패스 트레이싱의 다음 개척지가 되었습니다.
2018년에 NVIDIA는 게임 개발자에게 영화 품질의 실시간 렌더링을 제공하는 레이 트레이싱 기술인 NVIDIA RTX를 발표했습니다.
NVIDIA Ampere 및 Turing 아키텍처 GPU에서 실행되는 레이 트레이싱 엔진을 포함하는 NVIDIA RTX는 다양한 인터페이스를 통해 레이 트레이싱을 지원합니다.
그리고 NVIDIA는 Microsoft의 새로운 DirectX Raytracing(DXR) API를 통해 완전한 RTX 지원을 제공하기 위해 Microsoft와 파트너십을 맺었습니다.
그 이후로 NVIDIA는 점점 더 많은 개발자가 실시간 레이 트레이싱을 지원하는 게임을 제작함에 따라 NVIDIA RTX 기술을 계속 개발해 왔습니다.
Minecraft는 실시간 패스 트레이싱에 대한 지원도 포함하여 고르지 않은 몰입형 세계를 빛과 음영이 가득한 몰입형 환경으로 바꿔줍니다.
점점 더 강력해지는 하드웨어와 소프트웨어 도구 및 관련 기술의 확산으로 인해 더 많은 것이 다가오고 있습니다.
그 결과 게임, 가상 세계, 심지어 온라인 협업 도구와 같은 디지털 환경이 할리우드 블록버스터의 영화적 품질을 갖게 될 것입니다.
기대하셔도 좋습니다. 거실 소파에서 보는 것은 앞으로 온 세상에 나타날 것의 데모일 뿐입니다.
- NVIDIA RTX 패스 트레이싱 SDK에 대해 자세히 알아보세요.
- NVIDIA의 ‘실시간 패스 트레이싱을 향한 연구 발전‘ 온디맨드 세션을 시청하세요.
- 레이 트레이싱에 대해 자세히 알아보려면 Ray Tracing Gems 및 Ray Tracing Gems II를 살펴보세요.
- Matt Pharr, Wenzel Jakob, Greg Humphreys의 ‘물리 기반 렌더링: 이론에서 구현까지‘를 확인하세요. 현대의 사실적인 렌더링을 구현하기 위한 수학적 이론과 실용적인 기술을 모두 제공합니다.
- 게임 개발을 위한 NVIDIA 리소스에 액세스하세요.
- NVIDIA 기술 블로그에서 패스 트레이싱에 대해 자세히 알아보세요.
이 문서는 Albrecht Dürer의 Treatise on Measurement 출판에 대한 정확한 날짜를 반영하기 위해 업데이트되었습니다.
이 블로그에 열거된 SDK의 대부분의 독점 액세스, 얼리 액세스, 기술 세션, 데모, 교육 과정, 리소스는 NVIDIA 개발자 프로그램 회원은 무료로 혜택을 받으실 수 있습니다. 지금 무료로 가입하여 NVIDIA의 기술 플랫폼에서 구축하는 데 필요한 도구와 교육에 액세스하시고 여러분의 성공을 가속화 하세요.