이번 발표에서는 단순히 시네마틱 영상을 선보이는 데 그치지 않고 사용자가 다양한 빛 구성을 컨트롤하여 실시간으로 차량의 외관을 바꿔 보는 인터랙티브 경험도 할 수 있었습니다.
에픽게임즈의 임베디드 시스템 책임자이자 이번 프로젝트에서 VFX 슈퍼바이저를 담당한 프랑수아 앙투안(François Antoine)은 "이번 프로젝트를 통해 많은 문제를 해결했습니다. 레이 트레이싱 기술만을 활용하여 다양한 그림자와 텍스처드 에리어 라이트(textured area light)를 역동적으로 표현하였고, 트루 에리어 라이트 샘플링(true area light sampling)을 구현했습니다. 또한, 레이 트레이스드 반투명(ray-traced translucent)과 클리어 코트 섀딩 모델(clear coat shading model), 반사된 그림자의 노이즈 제거 및 스크린 공간에서의 실시간 레이 트레이스드 글로벌 일루미네이션(ray-traced diffuse global illumination)이 가능해졌습니다.
이 프로젝트는 크게 시네마틱 '어트랙트 모드'와 인터랙티브 라이팅 스튜디오라는 두 가지 요소로 구성되어 있습니다. 두 요소 모두 동일한 차량 정보와 렌더링 특성 세트를 사용했죠. 실제로 시네마틱 영상은 언리얼 엔진의 '시퀀서'를 활용해 인터랙티브 라이팅 스튜디오 안에서 실시간으로 촬영된 것입니다."라고 말합니다.
이번 데모는 게임 게발자 콘퍼런스(GDC) 2018에서 공개한 “리플렉션(Reflections)"에서 선보였던 앞선 기술을 다양하게 활용했습니다. 리플렉션은 언리얼 엔진의 레이 트레이싱 기술을 사용해 실시간 렌더링한 스타워즈 시리즈의 유명한 세 주인공이 등장하는 영상 스토리입니다. '스피드 오브 라이트'는 언리얼 엔진을 활용해 개선된 레이 트레이싱의 성능과 속도를 강조합니다.
게다가 '리플렉션' 제작 시에는 훨씬 복잡한 RTX 기능을 사용하고 데모를 선보일 때도 4개의 Volta GPU가 필요했던 것과 달리 이번 데모를 선보이는 데는 NVIDIA Quadro RTX 그래픽 카드 두 개면 충분했습니다. 이 사실 하나만으로도 NVIDIA의 하드웨어가 새로운 버전의 언리얼 엔진에 대응하는 실시간 레이 트레이싱 기능에서 앞섰음을 보여줍니다.
데모를 시작하게 된 계기
이번 데모는 앙투안이 CTO인 킴 리브레리(Kim Libreri)와 함께 언리얼 엔진으로 NVIDIA 쿼드로 RTX 카드에서 제공하는 기능 대부분을 보여 주는 방법을 고민하던 중에 탄생하게 되었습니다. "튜링™(Turing™) 아키텍처의 레이 트레이싱 기능을 알자마자 자동차를 테마로 한 프로젝트를 떠올렸습니다. 자동차를 표현할 때는 부드러운 곡선이 핵심입니다. 업계에서는 '리퀴드 라인(liquid line)'이라고 하죠."
앙투안은 "실시간 분야를 발전시킬 RTX 카드와 튜링™ 아키텍처의 빛 재현성과 포르쉐 스피드스터의 매력을 시각적으로 보여 줄 방법을 고민했고 그 즉시 '스피드'와 '빛'이라는 단어가 떠올랐습니다."라고 덧붙입니다.
그 뒤로 SIGGRAPH 2018에서 시네마틱 인터랙티브 영상인 '스피드 오브 라이트' 데모를 통해 혁신 기술을 선보일 팀이 모였습니다. 앙투안은 "부분 조명과 차량 정보, 폴리곤 수의 변화 없이도 시네마틱 영상을 인터랙티브 영상으로 바꾸는 데 아무 문제가 없습니다. 완전히 역동적인 영상을 1세대 하드웨어로 구동함에도 시네마틱 영상과 라이팅 스튜디오의 빛 재현성은 놀라운 수준입니다."라고 설명합니다.
기술의 조화
데모를 만들기 위해서는 단순히 훌륭한 하드웨어로는 부족했습니다. 팀은 무료로 제공되는 언리얼 스튜디오 베타의 임포트 툴인 데이터스미스를 사용하여 포르쉐 콘셉트 카의 실제 CATIA CAD 제작 파일을 언리얼 엔진으로 불러왔습니다.
팀은 본래 4000만 개의 폴리곤을 취사 선택하여 폴리곤 개수를 1000만 개로 확 줄였습니다. 폴리곤 수를 4분의 1로 줄이는 것이 결과적으로 꼭 필요한 과정은 아니었습니다. 실제 렌더링 성능 개선에 미친 영향은 미미했기 때문입니다. 앙투안의 설명에 따르면 " NVIDIA RTX의 렌더링 성능은 래스터화 렌더링만큼 폴리곤 수에 영향을 받지 않았습니다. 큰 데이터 세트를 활용해 시각화를 할 때 정말 도움이 됐죠. 성능에 미치는 영향을 측정할 때는 픽셀당 레이 캐스트 수를 확인하는 것이 낫습니다."
콘셉트 카의 차량 내외부를 전부 묘사하면서 반투명하거나 광택이 있는 표면도 최대한 정확하게 보여 줘야 했기 때문에 데모에 사용되는 머티리얼은 무척 다양했습니다. 이를 위해 팀은 현실 자료를 많이 참고했는데 실제 포르쉐 차량 부품을 분해해서 각 부품의 내부 구조를 이해하고 빛에 어떻게 반응하는지 살펴보기도 했습니다.
이 과정은 스피드스터의 후미등을 분석하는 데 특히 도움이 됐습니다. "물리적으로 훨씬 정확하게 알게 된 레이 트레이싱의 특징과 새롭게 이해한 여러 사실 덕분에 이전보다 더 정확한 후미등 표현이 가능해졌습니다."
또한 팀에는 가죽이나 페인트 견본 등 포르쉐가 사용하는 머티리얼 샘플을 다양하게 스캔해 자사의 AxF 포맷(최근 언리얼 스튜디오에서도 지원)으로 만든 엑스라이트(X-Rite)의 컬러 관리 전문가도 있었습니다. 덕분에 클리어 코트 도색을 한 차량, 단색 화이트 페인트, 가죽 좌석의 고해상도 텍스처와 노멀 맵을 얻을 수 있었습니다.
앙투안은 "AxF를 활용한 것은 이번이 처음이지만 머티리얼 룩 개발 평가와 최종 픽셀을 구현할 때 직접적인 도움이 되었습니다"라고 말합니다.
스피드 오브 라이트에서 사용된 실시간 렌더링
데모에서는 재생 중 래스터 및 레이 트레이싱 기술을 선보입니다. 먼저 래스터 베이스 패스를 계산하고 레이 트레이싱 패스를 띄웁니다. 에픽게임즈의 수석 레이 트레이싱 프로그래머 후안 카냐다(Juan Cañada)는 "데모에서 활용한 이 방법은 기존 래스터 기술로 얻어내기 힘들었던 복잡한 효과까지 계산할 수 있습니다"라고 설명합니다.
레이 트레이싱은 한정된 수의 빛을 쏜 뒤 이 빛이 만들어 내는 빛 또는 색상 샘플을 선택하여 구현합니다. 레이 트레이싱 기술만을 사용할 경우 사진과 같은 이미지를 얻기 위해 필요한 빛과 샘플의 수가 많아지므로 렌더링에 매우 오랜 시간이 걸립니다. 하지만 렌더링 시간을 줄이기 위해 샘플을 너무 적게 선택하면 이미지의 해상도가 떨어지거나 노이즈가 증가합니다.
레이 트레이싱 시에는 필요한 빛과 샘플의 수를 최소화하면서 사진과 같은 이미지를 얻기 위해 인접한 픽셀의 차이를 줄이는 방법인 노이즈 제거 기술을 사용합니다. 노이즈 제거 기능은 단순히 픽셀을 뭉개거나 비슷하게 만드는 것이 아니라 다양한 요소를 고려하는 복잡한 알고리즘을 사용합니다. 사실 노이즈 제거 기능의 수준이 속도 대 품질 측면에서 레이 트레이싱 도구의 실용성을 좌우합니다.
NVIDIA는 '스피드 오브 라이트' 데모에 사용된 노이즈 제거 기능을 '리플렉션' 프로젝트 당시보다 개선시키려 했습니다. NVIDIA의 실시간 렌더링 소프트웨어 시니어 매니저인 이그나시오 야마스(Ignacio Llamas)는 "이번에 사용된 노이즈 제거 기능은 단일 샘플에서도 표면의 매끄러움을 가리지 않고 수백 혹은 수천 개 샘플 중에서 얻은 참고 자료와 유사한 수준의 매칭률을 보여 줍니다"라고 설명하며 이번에 고급 노이즈 제거 기술 개발의 핵심 인재로 NVIDIA의 소프트웨어 엔지니어인 에드워드 리우(Edward Liu)를 꼽았습니다.
차량을 비추는 빛줄기를 통해 빠르고 효과적인 노이즈 제거 기술을 확인할 수 있습니다. 기존 RTX 렌더링에서는 비행기의 밋밋한 표면을 활용해 이 효과를 구현했습니다. '스피드 오브 라이트'에서는 레이 트레이싱으로 구현된 가상 그림자와 텍스처드 에리어 라이트를 이용하여 빛줄기를 표현했습니다. 이들이 실제 포토 스튜디오 환경에서 빛줄기의 모습과 각 차량 부품이 빛을 퍼뜨리고 반사하는 모습을 반영해 빛의 움직임을 더욱 실제처럼 만들어 냈습니다.
이번 데모에서는 반사되는 표면에서의 실시간 렌더링 기술 발전만이 아니라 반투명한 표면에서도 한 단계 앞선 실시간 레이 트레이스드 반투명 기능을 선보일 수 있다는 것을 보여주었습니다. "이번 데모에서는 카메라에서 보는 1차적인 빛을 우선 각 장면에서 불투명한 지오메트리만 만나게 하여 이를 트레이싱한 뒤 래스터화로 계산하여 지버퍼(GBuffer)로 만들었습니다. 빛이 통과하는 모든 반투명한 레이어의 작업을 마친 뒤에는 반사되는 빛과 그림자도 트레이싱했습니다. 반사된 빛이 추가로 반투명한 레이어에 비치기도 하고 그림자를 만들기도 했습니다"라고 야마스는 말합니다. 또한, 현존하는 기술로 레이 트레이스드 반투명 기능을 구현할 때에는 노이즈를 제거하지 않지만 앞으로의 레이 트레이스드 반투명 구현 시에는 이 절차를 계산에 넣을 계획이라고 덧붙였습니다.
스크린 스페이스 레이 트레이스드 디퓨즈 글로벌 일루미네이션(screen-space ray-traced diffuse global illumination)을 통해 차량의 조명을 더욱 효과적으로 밝힐 수 있었습니다. 전보다 적은 조명으로도 이전보다 더 특징을 강조할 수 있었습니다.
이처럼 '스피드 오브 라이트' 데모를 실시간으로 구현할 수 있었던 것은 발전된 레이 트레이싱 기술 덕분이었습니다. 야마스는 "1080p일 때 Quadro RTX 6000이 선보인 시네마틱 시퀀스의 평균 프레임 속도는 DGX 스테이션(DGX Station)으로 구현했던 것보다 빠른 35-40FPS입니다."라고 말합니다.
기술의 발전
불과 몇 년 전까지도 실시간 레이 트레이싱은 불가능한 것처럼 보였지만 이제는 그렇지 않습니다. 레이 트레이싱 기술의 발전으로 사용자의 준비 및 사용이 간편해질 것입니다. 앞으로는 리플렉션 프로브, 라이트 베이킹 등이나 래스터 렌더링으로 현실감을 부여하는 복잡한 라이팅 방법이 필요하지 않을 것입니다. 다른 작업 없이 물리적 성질만을 활용해 라이팅과 리플렉션을 표현할 수 있게 됩니다.
앙투안은 "우리가 알지 못할 정도로 혁신적인 기술이 많다는 것은 좋은 일입니다."라고 말합니다. "그 기술이 사람들의 시선을 끌 필요는 없습니다. 그저 더 사실적인 이미지를 보여주면 되죠."
이번 기술 발전이 가능했던 이유는 많습니다. NVIDIA가 실시간으로 고품질 이미지를 제작할 수 있는 레이 트레이싱 그래픽 카드를 만든 것이 그 첫 번째입니다.
레이 트레이싱 아키텍처를 빠르게 개발할 수 있는 환경을 제공한 DXR 기술과 API가 그 두 번째 이유입니다. 노이즈 제거 기술이 발달한 것도 이유로 꼽을 수 있습니다.
에픽게임즈는 실시간 레이 트레이싱 기술의 미래를 기대하고 있습니다. 에픽게임즈의 시니어 프로덕트 매니저 켄 피멘텔(Ken Pimentel)은 "이는 수준 높은 이미지 재현성과 경험을 만들어 내기 위한 조건을 바꾸기 위한 혁명과도 같습니다. 물리적인 정확도와 엄청나게 멋진 시각화 중 하나를 선택할 필요가 없습니다. 언리얼 엔진으로는 둘 다 가능하니까요."라고 말합니다.
실시간 렌더링 혁명에 참여하고 싶으신가요? 오늘 무료 제공되는 언리얼 스튜디오 베타를 다운 받아 언리얼 엔진에서 프로젝트를 임포트 해보세요!