레이 트레이싱은 오프라인 렌더러에서 사실적인 결과물을 얻기 위해 오랫동안 사용되어 왔으며, 특히 반사가 많은 씬이나 두꺼운 유리처럼 복잡한 반투명 머티리얼이 필요한 씬에서 애용되었습니다. 이제 다양한 회사들의 노력으로, 오는 2018년 말부터 마이크로소프트(Microsoft) DXR API와 레이 트레이스드 에리어 라이트 섀도가 언리얼 엔진 4의 메인 브랜치에서 지원될 예정입니다. 에픽게임즈는 언리얼 엔진 4.22에서 위 기능들에 대한 바이너리를 지원할 예정이며, 그 외의 기능들도 제작에 사용할 수 있는 준비가 되면 함께 추가할 예정입니다.
레이 트레이싱이 중요한 이유가 무엇인가요?
렌더러는 픽셀의 색상을 결정할 때 두 가지 방식, 래스터라이제이션과 레이 트레이싱 중 하나를 주로 사용합니다. 래스터라이제이션은 하나의 특정한 픽셀부터 시작해 "이 픽셀은 무슨 색이어야 하는가?"라고 묻습니다. 레이 트레이싱은 시야각 및 광원으로부터 작동해 "라이트는 무엇을 하고 있는가?"라고 묻습니다.
레이 트레이싱은 씬 주위에서 반사되는 광선의 경로를 추적하는 식으로 작동합니다. 빛이 반사될 때마다 빛은 이전에 자신이 부딪힌 물체의 색상을 축적함으로써 실제 빛을 모방하고, 강도를 잃게 됩니다. 이렇게 색을 입히면 선명한 반사와 은은하고 실감나는 색감을 얻어낼 수 있으며, 특정 유형의 머티리얼 및 이펙트는 오직 레이 트레이싱으로만 얻을 수 있습니다.
반대로 래스터라이제이션은 레이 트레이싱보다 더 빠르고 비용도 더 낮은 방식으로, 수많은 근사치를 가지고 라이팅을 계산합니다. 언리얼 엔진의 레스터라이제이션은 빠른 GPU 상에서 단 수백만분의 1초 만에 4K 해상도의 프레임을 제공합니다. 래스터라이제이션은 반드시 물리적으로 정확하지 않아도 포토리얼리즘에 가까운 그래픽을 보여줄 수 있기 때문에, 이에 따른 속도는 대부분의 언리얼 엔진 개발자에게 가치가 있습니다.
하지만 실사 영화나 건축 시각화 프로젝트처럼 퍼포먼스보다는 포토리얼리즘에 더 중점을 두는 경우, 레이 트레이싱은 래스터라이제이션으로 달성하는 것이 불가능하지는 않지만 굉장히 어려운, 차원이 다른 수준의 충실도를 제공합니다. 지금까지 레이 트레이싱은 필요 계산량이 엄청나기 때문에 오프라인 렌더링에만 구현되었습니다. 레이 트레이싱으로 씬을 계산하려면 1프레임을 계산하는데만 몇 분에서 몇 시간까지 걸릴 수 있으며, 영상 애니메이션의 1초를 채우는 데는 총 24프레임이 필요합니다.
"전통적으로 레이 트레이싱은 제작 파이프라인에서 다양한 방식으로 사용되어 왔습니다." 에픽게임즈의 리드 레이 트레이싱 프로그래머, 후안 카냐다(Juan Cañada)는 말했습니다. "고해상도의 실시간 결과물을 얻기 위해 래스터 렌더링을 사용할 계획을 세우더라도, 아티스트들에게 목표 결과물 및 래스터 비교용으로 제시할 레퍼런스, 또는 최종 픽셀에 사용하기 위한 스틸 샷과 애니메이션은 레이 트레이싱으로 렌더링할 수도 있습니다.
"레이 트레이싱을 실시간으로 할 수만 있다면, 이렇게 '비교 기준'이 될 레퍼런스 렌더링을 훨씬 빠르게 할 수 있습니다. 즉 렌더링에만 몇 시간에서 길게는 며칠까지 시간을 할애하여 겨우 이미지 몇 장을 얻는 데만 그치지 않고, 더 많은 것을 얻을 수 있거나, 제대로 된 작업을 하기 위해 몇 번의 반복 작업을 진행할 수도 있다는 뜻입니다.
카냐다는 레이 트레이싱을 이용할 수 있게 된 덕분에 "최종 결과를 더욱 쉽게 얻을 수 있어, 전체 제작 파이프라인을 보다 쉽게 통제할 수 있습니다." 라고 덧붙였습니다.
기술
'실시간 레이 트레이싱'은 (예전까지 모순된 단어였지만) 최신 GPU의 방대한 계산 성능과 머신 러닝 기술을 활용하고, 여기에 레이 트레이싱이 필요하지 않을 때는 래스터라이제이션을 사용하는 방식으로 구현하였습니다. 이런 하드웨어와 소프트웨어의 조합은 지금껏 불가능했으며, 현재도 수많은 기업들의 공동 노력을 통해서야 가능해진 것입니다.
윈도우(Windows) 개발자들은 그래픽 디스플레이의 최적화를 위해, 게임 엔진을 포함해 무거운 미디어 윈도우 어플리케이션을 위해 오랫동안 사용해 온 마이크로소프트(Microsoft)의 DirectX API에 익숙합니다. 마이크로소프트는 최근 DirectX12를 통해 작동하는 새로운 DXR (DirectX 레이 트레이싱) 프레임워크를 개발했습니다.
동시에, 엔비디아(NVIDIA)는 NVIDIA 볼타(Volta) 아키텍처 GPU 에서 실행되는 레이 트레이싱 기술, NVIDIA RTX를 발표했습니다. 엔비디아는 마이크로소프트와 협력해, 마이크로소프트 DXR API를 통해 완전한 RTX 지원이 가능하도록 하였습니다.
에픽게임즈는 마이크로소프트 DXR 및 엔비디아 RTX의 두 기술 모두를 활용한 파이프라인을 통해, 실시간 시네마틱 데모 '리플렉션(Reflection)'을 만들었습니다.
데모
에픽게임즈는 GDC 2018에서 발표를 위해 완전 실시간 레이 트레이싱을 보여주는 데모를 만들었습니다. 에픽게임즈는 엔비디아의 레이 트레이싱 전문가들과 루카스필름(Lucasfilm)의 몰입형 엔터테인먼트 담당 부서, ILMxLAB와 협력하였습니다.
이번 데모를 제작하기 위해 제작팀은 우선 ILMxLAB이 제작한 높은 퀄리티의 레퍼런스 영상으로 시작했고, 필요한 모델들을 제작하기 위해서 협력했습니다. 아티스트들은 스톰 트루퍼(Stormtrooper) 전투복에 난 작은 긁힌 자국에서부터 파스마(Phasma)가 걸친 망토의 주름까지, 모든 세부 묘사를 세심하게 다시 만들어 냈습니다. 머티리얼은 라이트에 자연스럽게 반응하도록 만들어졌습니다.
세트 건설 및 샷 작업은 언리얼 엔진 내에서 직접 이루어졌습니다. 에픽게임즈는 배우와 감독이 가상 현실 속에서 펼치는 연기를 촬영하기 위해 자사의 가상 프로덕션 기술을 사용했습니다.
이 기술의 대부분은 이미 언리얼 엔진에 있습니다. 이제는 여기에 레이 트레이싱의 새로운 효과들을 활용하여 더욱 생동감 있는 씬을 만들 수 있습니다. 파스마 대위의 갑옷에 비치는 역동적이고 정확한 반사, 굴곡진 거울같은 표면은 레이 트레이싱으로 구현된 것입니다.
리플렉션 데모는 언리얼 엔진에서 1080p 해상도로 초당 24프레임으로 실행됩니다. 텍스처 된 에리어 라이트로부터 나오는 섀도, 반사 및 앰비언트 오클루전의 계산은 모두 실시간으로 레이 트레이싱됩니다. 레이 트레이싱을 사용하면 소프트 섀도나 광택 반사처럼 표현하기 어려운 효과들도 자연스럽게 나타나, 씬의 사실성을 더욱 향상시켜 줍니다.
에픽게임즈의 팀은 반사광의 노이즈 제거나 세부 묘사 감소 등, 수많은 기술들을 활용하여 레이 트레이싱으로 사실성을 구현하기 위해 엔비디아의 엔지니어들과 협력하였습니다. GDC 2018에서는 이런 기술과 난관, 그리고 절충안에 대해 심도있게 다뤄보았었습니다.
미래
초기 릴리즈에서 언리얼 엔진의 렌더러는 래스터 렌더링으로 표현하기 정말 어렵지만, 레이 트레이싱으로는 간단하게 처리할 수 있는 프로세스들을 보여줄 것입니다.
"먼저 정확한 에리어 섀도와 뎁스 오브 필드를 위한 새로운 영상 포스트 프로세스에 레이 트레이싱을 활용했던 것처럼, GDC에서 선보였던 기능들부터 통합하기 시작할 것입니다." 라고 카냐다는 말했습니다. "그런 다음 굴절과 같은 다른 효과들을 렌더링할 수 있는 새로운 컴포넌트를 추가하고, 거기서부터 더 나아갈 것입니다."
이것이 미래의 영화 제작에서는 무엇을 의미할까요? 레이 트레이싱 기술은 지난 수년간 영화 및 건축 시각화 분야에 사용되어 왔으며, 사실적인 이미지 생성의 표준이 되었습니다. 오프라인 렌더러로는 이런 이미지를 렌더링하는 데 몇 시간이 걸릴 수도 있었지만, 이제 언리얼 엔진에 구현된 레이 트레이싱 기능으로는 실시간으로 렌더링을 할 수 있게 되었습니다.
즉 감독, 아티스트 및 디자이너가 더 빠르게 반복 작업을 진행할 수 있으며, 또한 새로운 라이팅 시나리오 및 카메라 각도를 시도해볼 수도 있다는 뜻입니다. 이는 궁극적으로 제작 비용을 낮추고, 더 많은 인터랙티브 콘텐츠를 제작할 수 있게 해 줄 것입니다.
GDC의 리플렉션 시연 영상은 엔비디아 RTX 기술을 사용하는 볼타 GPU를 4개 장착한 DGX 스테이션으로 실행했습니다. 현재로서는 실시간 레이 트레이싱을 활용하려면 위와 비슷한 성능의 하드웨어가 필요합니다. 하지만 무어의 법칙(Moore`s law)에 입각하면, 앞으로는 이 기술이 패키지화 되고 활용하는데 드는 비용이나 복잡도는 줄어들 것입니다. DXR의 퍼포먼스는 오프라인 렌더링처럼 해상도에 따라 달라지지만, 언리얼 엔진은 여전히 자체적으로 렌더링을 수행하기 때문에 그 퍼포먼스는 씬에 따라 달라지게 될 것입니다.
리플렉션 데모는 꽤 높은 사양의 하드웨어에서 실행되었지만, 에픽게임즈는 이 데모를 최종 게임이 아닌 첫번째 단계로 간주하고 있습니다. 현재 실시간 레이 트레이싱 데모에 사용된 DXR 지원 하드웨어는 엔비디아 측에서 제공하고 있지만, AMD도 언젠가 DXR 드라이버를 지원할 계획이라고 발표하였습니다.
"우리는 더 가볍게 만들고 접근성을 높일 수 있도록 계속 노력할 것입니다." 에픽게임즈 엔터프라이즈 엔지니어링 디렉터, 세바스찬 미글리오(Sebastien Miglio)는 말했습니다. "아직은 초기 단계이지만, 앞으로 단기간 내로 어떤 스튜디오에서나 볼 수 있는 대중적인 컴퓨터에서도 레이 트레이싱이 실행될 것이라고 예상하고 있습니다."
"리플렉션에서 보여준 노력은 게임뿐만 아니라, 높은 충실도의 몰입형 경험이 필요한 분야라면 어디서든 그 미래를 이끌어가고자 하는 에픽의 모습을 잘 보여줍니다." 미글리오는 말했습니다. "언리얼 엔진은 이미 오래 전에 충실도와 퍼포먼스 면에서 달성할 목표를 세웠습니다. 그리고 이제는 DXR을 사용하여 그 목표를 더욱 높이고 있습니다. 언리얼 엔진 개발자 분들은 저희와 함께 하는 길이야말로 미래를 향한 지름길이라고 확신을 가질 것입니다."
지금 미래를 만나보세요.
언리얼 엔진의 레이 트레이싱은 아직 몇 달 정도 더 준비해야 하지만, 실시간 래스터 렌더링은 지금 바로 이용해보실 수 있습니다. 여러분의 시작을 돕기 위해, 에픽게임즈는 언리얼 엔진으로 CAD 데이터를 가져오는 작업을 도와주는 툴셋 언리얼 스튜디오 를 소개한 바 있습니다.
언리얼 스튜디오에는 언리얼 엔진, 대부분의 주요 CAD 및 모델링 프로그램에서 익스포트하기 위한 플러그인, 그리고 여러분의 씬을 준비하고, 익스포트하고, 임포트하는 방법에 대한 광범위한 학습 자료를 무제한 사용할 수 있습니다.
언리얼 엔진을 사용해 볼 준비는 되었지만, 시작하는 데 도움이 필요하십니까? 지금 언리얼 스튜디오 무료 베타 버전에 가입하고 모든 내보내기 플러그인과 영상 학습 자료 등을 이용해 보세요!