▲ (좌측부터) 유니티 루도빅 테오발드 엔지니어, 아드리앙 물랭 엔지니어, 다미안 나크만 PM, 매튜 뮬러 PM

유니티는 현지 시각으로 18일, 유니티6에서 선보일 '렌더 그래프' 및 렌더링 최적화를 위한 다양한 기술을 주제로 강연했다.

차세대 게임 엔진이 공개되면 일반적으로 어느 정도의 그래픽을 얼마나 효율적으로 구현할 수 있나 신경을 쓰게 된다. 게임을 처음 접할 때 가장 먼저 눈에 띄는 것이 그래픽이고, 자연히 이 부분에서 어떤 경험을 줄 수 있느냐 신경을 쓸 수밖에 없기 때문이다. 그래서 차세대 엔진을 공개하는 자리에서 최고 수준의 그래픽을 자랑하는 프로젝트의 트레일러이나 데모가 공개되곤 했다.

작년 유나이트 2023에서 공개한 유니티6도 최초 공개 당시에는 그러한 흐름을 이어오는 한편, 그 뒤로 4개월 정도 지난 이번 GDC 2024에서는 고퀄리티 그래픽으로 구현한 작업물을 어떻게 더 효율적으로 렌더링할 수 있게 될지 소개했다.

유니티의 파이프라인은 빌트인 파이프라인 외에 19년부터 스크립터블 렌더 파이프라인을 발표, 목적에 맞춰 더 효율적인 렌더 파이프라인을 선택해서 최적화 및 그래픽 퀄리티를 낼 수 있게끔 했다. 스크립터블 렌더 파이프라인도 모바일 및 멀티플랫폼 대응에 주력한 URP, PC나 콘솔에서 이전 버전 대비 한 차원 더 발전한 고해상도 그래픽을 구축하기 위한 HRP로 나뉘었으며, 이 두 가지를 서로 호환되게끔 발전시키는 방향이 지난 유나이트 2023에서 공개된 바 있다.


렌더 파이프라인의 큰 틀로 보면 세 가지로 구분이 가능하지만, 그 내부에는 각각의 목적을 달성하기 위한 다양한 기능들이 공통적으로 혹은 개별적으로 적용되어 왔다. 다미안 나크만 PM은 이번 유니티6에서 가장 주목해야 할 기능과 방향성으로는 'GPU 레지던트 드로어' 등 CPU의 부담은 낮추고 GPU에서 처리 비중을 높인 것이라 강조했다.

기존 유니티에서도 CPU의 부담을 낮추기 위해 한 번의 드로우콜에 복수의 동일한 메시를 묶는 인스턴싱 같은 기술이 존재했다. 그러나 CPU에서 처리해야 하는 일 자체가 줄어든 것은 아니었다. 그러나 플레이 화면에서 미처 보이지 않아서 당장 렌더링하지 않아도 될 폐색된 부분을 GPU에서 그리지 않으면 CPU에 가는 부담이 줄어든다.

한편으로는 GPU에서도 다 처리하는 것이 아닌, 명령 버퍼를 정의하고 그에 맞는 부분을 버퍼를 통해 처리해서 부담을 낮추는 GPU 간접 렌더링과 배치 렌더러 그룹 등으로 한층 최적화를 개선했다. 유니티6에서 이와 관련된 부분은 프로젝트 설정에서 퀄리티-렌더 파이프라인 애셋을 연 뒤 인스펙터창에서 관련 옵션을 설정해서 적용할 수 있게 된다. 이외에도 그래픽 분할이나 배치 GPU 스키닝 등 호환성 및 최적화를 위한 옵션도 세팅에서 적용할 수 있다.

▲ 불필요한 부분은 폐색하고 처리하는 GPU 폐색 컬링 등으로 최적화를 끌어올린 한편

▲ 웹 호환을 위한 기능도 추가된다

이와 함께 유니티6에서는 새로운 렌더링 프레임워크, '렌더 그래프'도 선보인다. 렌더 그래프는 기존의 셰이더 그래프나 VFX 그래프 같은 노드 기반의 에디터가 아닌, 렌더 파이프라인의 버퍼나 텍스처 등이 어떤 단계에서 어느 정도로 렌더링 리소스를 활용하고 있나 그래프 형식으로 표기한 에디터다.

단순히 각 단계마다 버퍼나 텍스처가 어떻게 활용되고 있나 보는 것뿐만 아니라, 버퍼에 우클릭을 해서 패스와 서브패스 정보 그리고 각 패스의 정의까지 직접 확인할 수 있다. 이를 활용해서 각 렌더 패스의 활용 및 연관 관계를 파악해서 패스를 효율적으로 머징하도록 지원한다.

▲ 유니티6에서 선보일 '렌더 그래프'는 노드가 아닌 그래프로 각 버퍼의 정보를 확인



▲ 불필요한 프로세스를 머징해서

유니티6에서는 URP 호환 모드에서 렌더 그래프를 포팅한 이후, 이와 같은 기능을 활용해 최적화를 더욱 쉽게 할 수 있게 된다. 유니티6에서 실제품 수준으로 마련되는 레이트레이싱 API에서도 렌더 그래프 뷰어를 지원, 직접 각 패스의 활용 및 구조를 살펴보면서 최적화를 진행할 수 있다.

한편, VFX 그래프는 기존의 노드 방식을 유지하되 좀 더 커스터마이징이 쉽게끔 개선된다. 특히 셰이더와 관련된 HLSL 노드가 더해지면서 셰이더 그래프뿐만 아니라 직접 에디터 내의 스크립트로 셰이더 최적화를 진행할 수 있게 된다.


▲ 레이트레이싱에서도 렌더 그래프를 지원, 최적화가 한층 원활해지고

▲ 셰이더 그래프에서는 직접 스크립트를 분석해 최적화할 수 있는 HLSL 노드가 추가된다

유니티의 매튜 뮬러 PM은 "이전에는 최적화하기 어려웠던 파티클 셰이더나 각종 난관들이 유니티6에서는 렌더 그래프의 추가 및 VFX 그래프의 기능 추가로 더 쉬워질 것"이라면서 "높은 퀄리티를 더 쉽게 보여줄 유니티6를 기대해달라"고 전했다.