▲ 마이크로소프트 아담 마일즈 수석 엔지니어(좌) 유니티 레이먼드 그레이엄 디렉터(우)

실시간으로 빛의 변화를 포착, 구현하는 리얼타임 레이트레이싱은 최근 몇 년간 게임 및 CG를 활용하는 각종 업계에서 화두로 자리잡은 기술이었다. 미리 구현해둔 맵을 불러오는 방식으로는 표현하기 어려운 반사나 굴절, 실시간으로 바뀌는 환경 변화까지 이론상 쉽게 구현할 수 있는 방식이었기 때문이었다. 그러나 이를 위해서는 고차원적인 연산 능력과 처리 능력이 필요했다.

유니티는 마이크로소프트와 전략적 파트너십을 꾸준히 이어오면서 최근 Xbox에 실시간 레이트레이싱 및 다이렉트X12 적용까지 다방면으로 접근하고 있다. 과연 다이렉트X12 적용이 바꿀 유니티와 Xbox의 게임 환경은 어떨지, 또 Xbox에서 실시간 레이트레이싱 적용할 때 주의사항에 대해서 유니티의 레이먼드 그레이엄 디렉터와 마이크로소프트의 아담 마일즈 수석 엔지니어가 GDC 무대에서 설명을 이어나갔다.

유니티는 그간 Xbox와 윈도우 플랫폼에서 렌더링 가속 및 퍼포먼스 증진을 다이렉트X12 백엔드를 발전시켜왔다. 그 결과 다이렉트X12를 사용하면, HDRP의 레이트레이싱 등 고성능의 환경에서 구동 가능한 기능을 대부분 무리 없이 활용할 수 있다. 유니티에서는 2024년까지 윈도우 플랫폼에서 다이렉트12를 메인 그래픽 백엔드까지 올리는 것을 목표로 계속 관련 기능을 개선 중이다.


현재 다이렉트X12는 유니티에서 실험 단계로 들어와있으나, 2022.2 버전부터 실험 단계에서 벗어나 점차 적용 범위가 확장된다. 그렇게 되면서 드로우콜 및 그래픽 잡스 등에서 기존보다 상향된 퍼포먼스를 기대할 수 있을 예정이다. 유니티 HDRP 샘플로 측정한 바에 따르면 197FPS 대 183FPS 정도의 차이가 있었으며, 이밖에도 헤비 드로우콜 서브미션 등에서도 10~20%의 퍼포먼스 차이가 났다.

그렇다면 Xbox에서는 어떻게 다이렉트X12가 적용되고, 유니티에서 Xbox용으로 게임을 개발할 때 어떤 옵션이 지원될지가 관건이었다. 그레이엄 디렉터는 Xbox용 실시간 레이트레이싱은 유니티에서 HDRP에서만 가능하다고 설명했다.



유니티의 HDRP에는 Xbox용으로 제공되는 레이트레이싱 효과들은 총 5종으로 구성되어있다. 첫 번째로 레이트레이싱 기반 앰비언트 오클루전은 스크린 공간 앰비언트 오클루전에 대한 대안으로, 오프스크린 데이터를 사용할 수 있는 더 정확한 레이트레이싱 기반 솔루션을 사용한 효과다. 두 번째로 레이트레이싱 기반 컨택트 섀도우는 섀도우맵 없이도 물체에 빛이 닿으면 그림자가 자연스럽게 구현되는 효과이며, 글로벌 일루미네이션은 빛을 베이킹하지 않고도 실시간으로 글로벌 라이트를 바로 적용하는 효과다.






이외에도 레이트레이싱 기반 반사와 직사광이나 스플릿, 포인트광 등에 대응하는 레이트레이싱 섀도우까지 적용이 되어있으며, 해당 효과는 유니티의 새로운 HDRP 샘플 씬인 '터미널'이나 지난 2021년 출시되어 2023년 3월 레이트레이싱 옵션을 업데이트한 '레고 빌더스 저니'에서 확인할 수 있다.

레고 빌더스 저니에 적용된 레이트레이싱은 Xbox 시리즈 X에서는 4K, Xbox 시리즈 S에서는 QHD 해상도를 기반으로 구동된다. 레이트레이싱을 적용하지 않으면 60프레임으로 원활하게 돌아가며, 레이트레이싱 적용시 35~55프레임 단위가 움직인다. 레고 빌더스 저니의 업데이트는 유니티 2022.2로 한 이후, HDRP 커스텀 버전 12.0을 적용해서 구축했다.

2023.1에는 레이트레이싱 액셀러레이션 스트럭쳐 애드 인스턴스(RayTracingAccelerationStructure.AddINstance)가 지원, 레이트레이싱 API에 인스턴스화가 지원될 예정이다. 레이트레이싱에 인스턴스화가 진행되면 테스트를 통해 40FPS에서 많게는 100FPS의 차이까지 성능을 끌어올릴 수 있을 것으로 기대된다.

그렇다면 Xbox에서 다이렉트X 레이트레이싱(DXR) 및 실시간 레이트레이싱은 어떻게 작동하고 있을까? 마일즈 수석 엔지니어는 DXR는 1.0을 사용하고 있으며, 커스텀 버전에서는 DXRX 1.1을 활용하고 있다고 밝혔다. DXR1.0은 Xbox 내에서 모두 지원하며, RTPSO레이트레이싱 렌더링 파이프라인으로 오브젝트들이 기재, 컴파일됐다.

DXR1.0의 현재 퍼포먼스에서는 리커시브 레이의 사용은 최대한 피해야 하며, 애니히트 셰이더도 최소화하는 등 메모리 하중을 최소화할 필요가 있었다. 그런 상황에서 DXR1.1로 업데이트되면 퍼포먼스가 증가하지만, 여기에도 유의사항이 있었다.

▲ 아직은 모든 환경에서 100% 완벽한 실시간 레이트레이싱 구현과는 거리가 있다

우선 픽셀 셰이더는 완성 전에는 다소 일렁거릴 여지가 있기 떄문에 컴퓨트 셰이더를 사용해야 하고, DXR 1.0의 클로지스트 히트 셰이더를 우버 셰이더와 함께 호출해서 에뮬레이트하면 레이 쿼리값이 불변이 되어버리는 코드가 작동한다. 또 애니 히트 셰이더는 최대한 짧게 써야만 하는 제약이 아직 있다.

이밖에도 한 오브젝트당 하나의 BLAS 적용이나 오브젝트는 월드축에 맞춰서 빌드하되 인스턴스 트랜스폼을 활용해서 회전해야 하는 등 퍼포먼스를 내기 위해서는 주의해야 할 사항들이 있다. 아직은 이렇게 다소 불편한 요소들이 있는데 왜 레이트레이싱에 주목해야 할까 의문일 수도 있을 것이다. 이에 마일즈 수석 엔지니어는 실시간으로 빛의 변화를 반영하는 이 기술은 빌드 개발의 퀄리티도 끌어올리고, 관리 역시도 궁극적으로 한층 더 편해진다는 것이 연구진의 결론이었다. 이를 위해서 유니티와 마이크로소프트는 다이렉트X12 및 실시간 레이트레이싱 적용을 위해 꾸준히 파트너십을 이어오고 있으며, 곧 더욱 개선된 결과물을 선보일 예정이라고 덧붙였다.