▲ 유니티 요나스 모르텐센 TA

PC-모바일이나 PC-콘솔, 혹은 모든 플랫폼을 아우르면서 어느 한 게임을 즐길 수 있는 이른바 '크로스플랫폼'은 10년 전만 해도 상상하기 어려운 개념이었다. 그러나 최근에는 다수의 게임들이 PC 및 콘솔, 혹은 모바일에서도 즐길 수 있게 됐다.

이와 같은 상상이 구현되기 위해서는 하드웨어의 발전뿐만 아니라 소프트웨어적인 발전도 필요했다. 특히 각 기기마다 환경이 다른 만큼, 그 환경에 맞춰서 일일이 작업해야 할 때도 있었다. 더욱이 그래픽처럼 연산 처리 능력이 고도로 필요한 경우에는 제약이 크다보니 더 난관을 빚었다.

유니티는 멀티플랫폼 빌드를 지원하는 한편, 2019년부터 LWRP를 URP로 새롭게 도입해 이 문제를 원활히 해결하고자 했다. 모든 모바일 디바이스에서 고품질 그래픽스를 구현하는 빠르고 확장 가능한 파이프라인이었던 LWRP와 달리, 비주얼 이펙트 그래프, 쉐이더 그래프, 후처리, 라이트맵 등 기능을 활용해서 렌더링이 손쉽게 가능하도록 하는 반면, 또한 그렇게 해서 구현한 결과물이 프로젝트를 다른 플랫폼에서 돌려도 퀄리티나 해상도 변화가 없이 구동할 수 있게끔 하는 것으로 방향성을 바꾼 것이었다.

요나스 모르텐센 유니티 TA는 그 후 4년 동안 URP를 활용한 크로스플랫폼 게임 개발이 얼마나 쉬워졌는지, 또 유니티에서 개발자를 돕기 위해 어떤 샘플을 준비했는지 이번 GDC 2023 무대에서 풀어나갔다.

▲ 기존 유니티 렌더링 파이프라인 샘플, 특히 URP는 아주 매력적인 기능까지는 보여주지 못했다

기존 유니티의 스크립터블 렌더링 파이프라인 템플릿은 구 URP 샘플씬, 빈 템플릿, HDRP 샘플씬 세 가지로 구성이 됐다. 이런 분류만으로는 개발자들에게 각 파이프라인의 다양한 기능을 소개하기가 어려웠다. 그나마 HDRP 샘플에서는 매번 추가되는 새로운 기능을 보여주기 좋은 씬으로 구성되어있었지만, 구 URP 샘플씬은 몇몇 애셋만 보여서 프로젝트를 처음 시작하는 입장에서는 딱히 매력이 없었기 때문이었다.

이에 유니티에서는 각각 테마에 맞춘 샘플을 새롭게 제작, 렌더링 파이프라인에 있는 각종 기능을 소개해나갔다. 크게 확장성, 포토리얼리즘, 커스터마이제이션, 발전된 기능 네 카테고리로 분류한 뒤, 그에 맞춰 각각 샘플을 선보인 것이었다.

▲ URP, HDRP로 구분하는 것이 아닌 각 카테고리에 맞춰 파이프라인 샘플을 재정비했다

가장 먼저 URP의 확장성의 예제로 선정된 '가든'에 대한 소개가 이어졌다. '가든' 샘플은 플레이하자마자 바로 씬을 이리저리 전환할 수 있는 것이 특징이다. 오브젝트 일부가 사라졌다가 다시 등장하고, 심지어 눈앞에 방이 사라지기까지 전환의 폭이 넓다. 여기에는 오프스크린 렌더 타겟, 커스텀 셰이더, 스텐실 마스크, 풀 스크린 이미지 이펙트 등이 적용됐다.

또한 카메라를 두 개를 배치해서 캐릭터를 따라다니는 카메라가 환경 내에 배치해둔 카메라와 각이 겹치지 않으면 배경을 불러오지 않도록 하는 등 보이지 않는 공간에 대한 최적화까지 챙기는 기술도 선보였다. 장지문이 특정 패턴에 따라 사라지는 장면은 사전에 맵핑해둔 텍스처의 모양대로 진행하는 텍스처 기반 크로스페이드 기능이 적용됐다.


▲ 시야에 없으면 렌더링되지 않게끔 하거나, 혹은 텍스처에 맞춰 크로스페이드하는 기능 등을 선보였다

그 다음으로 URP가 적용된 또다른 샘플, '콕핏'에 대한 설명도 이어졌다. 콕핏은 카툰렌더링의 느낌을 살리기 위해 커스터마이징한 각종 셰이더와 아웃라인 후처리를 보여주기 위한 샘플이다. 카툰렌더링의 느낌을 살리기 위한 툰 라이트 셰이더에는 스무스스텝을 적용해 프래그먼트 에일리어싱을 줄이고 자연스러운 외곽선을 만들어냈다.

또한 실사와는 다른 만화풍의 느낌을 강조하기 위해 빛의 회절에도 페이크를 줬다. 일부 명암이나 그림자가 생략되는 만화적인 연출의 특성상, 빛의 회절을 일부 조절하지 않으면 만화적인 음영을 표현하기 어렵기 때문이었다. 여기에 아웃라인 후처리 과정도 풀스크린 패스 렌더 피처를 활용, 화면 일부의 오브젝트뿐만 아니라 전반적인 톤의 조율까지도 가능하다.


▲ 카툰 느낌을 살리기 위한 여러 기능과 기법들이 소개된 샘플, '콕핏'

모르텐센 TA는 다시 '가든' 샘플로 돌아와서 URP에 적용되는 빛과 관련한 내용을 추가로 설명했다. 실내의 정경이 오브젝트 렌더링 과정을 자유자재로 조절하는 과정을 보여줬다면, '가든'의 핵심은 정원에 있는 수많은 수풀들을 사실적으로 구현한 식생 셰이더와 그 사이사이에 있는 다양한 라이트의 조화였다. 단순히 그럴싸한 식생의 모델만 갖춘 것이 아니라, 빛의 변화를 시시각각 반영하는 수풀의 음영과 명암을 확인할 수 있기 때문이다. 특히 '가든' 샘플에서 나뭇잎을 확대하면 빛이 비추는 순간 산란하는 효과도 볼 수 있다.

물론 이렇게 디테일한 표현은 기기 최적화 측면에서 의문이 들기 마련이다. 실제로 모바일은 디스플레이 주파수 한계,작은 화면 등 기기의 한계가 있어 뎁스 프리패스를 유발할 수 있기 때문이다. 이 떄문에 렌더링패스를 상황에 맞춰 고를 필요가 있다.

▲ 또한 '가든' 샘플에서는 URP에서 다양한 빛과 셰이더의 활용 사례를 볼 수 있다

URP에서 프리패스를 유발할 수 있는 기능으로는 데칼과 스크린 스페이스 앰비언트 오클루전(SSAO) 두 종류가 언급됐다. 특히 D버퍼 데칼 기술은 프리패스를 유발할 수 있으며, 오토로 세팅하면 타일 GPU가 구동하는 동안 트레패스가 유발되는 걸 피할 수 있다. 그러나 프리패스는 한편으로 더 깊이 있는 텍스처나 옵션을 적용할 때에 발생하는 만큼, 타일 GPU 환경에서도 이를 완벽히 피할 수는 없다.

대신 플랫폼에 맞춰 볼륨 프로파일을 설정하고, 톤매핑까지 다양하게 활용할 수 있는 글로벌 볼륨 렌더링 기능과 그 코드를 공개했다. 이번 강연에서 공개한 URP 샘플은 GDC 기간 동안 유니티 부스에서 한시적으로 공개된다. 이후 유니티 2023.2 베타에서 점진적으로 출시될 예정이다.