[NDC2018] PC랑 같은데 최적화는 어떻게? '포트나이트 모바일' 지형과 렌더링

게임뉴스 | 강승진 기자 | 댓글: 16개 |



에픽게임즈의 ‘포트나이트: 배틀로얄(이하 포트나이트)’은 최후의 생존자가 남을 때까지 100명의 플레이어가 함께 플레이하는 게임이다. 특히 PC와 콘솔, 모바일 버전의 원활한 크로스 플레이를 지원한다. 유저는 모든 게임 내 소스를 공유는 각 버전을 차이 없이 즐길 수 있다.

다만, 모바일은 기기적 성능 한계 탓에 PC나 콘솔에서 지원되는 수준의 그래픽을 동일하게 구현하기는 어렵다. 참여자가 만큼 지역도 넓고 다양한 환경 오브젝트가 존재하기 때문이다. 이에 개발진은 언리얼엔진(UE)4의 다양한 기술을 통해 최적화해 공을 들였다.

강단에 오른 에픽게임즈의 최용훈 개발자는 포트나이트의 모바일 버전이 넓은 지역과 숲 렌더링을 어떻게 효과적으로 구현했고 최적화했는지 직접 재구현한 게임 속 맵을 통해 설명했다.




언리얼엔진4(UE4)는 간단하게 개방된 야외 공간을 제작하는 툴인 랜드스케이프를 제공한다. 이 툴은 탭에서 브러쉬로 그림 그리듯 쓸어내려 간단하게 지역 모습을 변경할 수 있고 조각 기능으로 지형 형태도 쉽게 변경할 수 있다. 또한, 레이어 기능을 활용하면 랜드스케이프에 매핑을 해줄 수도 있다.

포트나이트 역시 UE4의 랜드스케이프툴로 제작됐다. 지형은 앞서 설명한 수작업 형태로 제작할 수도 있지만 하이트 맵이나 웨이트 맵을 제작한 후 추출해 자동화할 수도 있다. 실제 강연에 사용된 맵 랜드스케이프 워크플로를 살펴보면 월드 컴포지션을 통해 큰 월드를 만들고 하이트 맵과 웨이트 맵을 만들어 랜드스케이프에 가지고 왔다.

랜드스케이프는 레이어를 지원한다. 레이어는 작업을 서로 나눠 할 수 있게 하는 기능으로 테스트맵에는 총 3개의 레이어가 쓰였다.




랜드스케이프의 큰 틀이 잡힌 이후 작업은 랜드스케이프 최적화다. 최적화 방법은 여러 가지가 있는데 이번 시연 맵 제작에는 컴포넌트의 크기 변경을 먼저 진행했다. 컴포넌트 크기 변경 툴을 이용하면 랜드스케이프의 트라이앵글 수가 줄어 최적화를 우선 진행할 수 있기 때문이다.

이후에는 서브섹션 및 컴포넌트 스크린 사이즈 설정 기능을 이용해 실제 화면 크기에 맞춰 랜드스케이프 LOD를 처리했다. LOD 분포 설정 기능을 이용하면 랜드스케이프 LOD의 세부 분포를 조절할 수 있어 카메라에 보이는 부분과 그렇지 않은 부분을 다르게 설정, 최적화 할 수 있다.

최적화 모드 에디터에서 LOD 배색 모드를 지원해 LOD가 어떻게 변하고 있는지 시각적으로 확인할 수도 있다.




다음 단계에서 진행한 최적화는 배이크 그래스 투 랜드스케이프인데(Bake Grass to Landscape)를 사용했다. 랜드스케이프가 과부하 탓에 멀리 있는 그래스 매시나 폴리지를 할 수 없는데 이를 배이크해주는 기능이다. 다음은 커스터마이즈드 UV다. 픽셀 셰이더의 경우 모바일에서 과부하가 크게 때문에 버텍스 셰이더를 대신 이용했다.

포트나이트는 모바일 버전이 따로 존재하지 않고 PC와 콘솔, 모바일이 모두 같은 레벨을 사용하고 있다. 다만 맵 2.0의 새로운 바이오메스로 인해 8개까지 확대된 레이어를 모두 구현할 수 없었다. UE 4.19버전에서 모바일 터레인 레이어가 최대 3개, 렌더러 업데이트로 최대 4개까지만 레이어를 구현할 수 있기 때문이다.

이에 커스텀 매크로 데이터와 바이오 메스를 하나로 합치는 작업을 병행했다. 이 과정은 가장 낮은 레벨에서 색을 추출하여 매크로 텍스처를 만들어 진행했다. 또한 모바일의 로우 퀄리티에서는 팬시 블렌딩(Fancy Blending)이나 엑스트라 클리프 텍스처(Extra Cliff Textures) 등을 비활성화해 최적화를 함께했다.




퀄리티 스위치(Quality Switch)와 피처 레벨 스위치(Feature Level Switch)도 최적화 과정에서 중요한 역할을 차지한다. 두 스위치는 콘솔이나 피씨 등 고사양 기기에서는 고사양의 셰이더를, 모바일에서는 셰이더의 사양을 낮게 자동으로 변경해주는 기능이다.

랜드스케이프 제작 과정에서 따로 살펴볼 것은 월드 컴포지션이다. 월드 컴포지션은 대규모 월드 관리를 단순하게 만들어 쉽게 제작할 수 있도록 디자인된 툴이다. 예를 들어 MMORPG는 맵이 여타 장르보다 방대한데 모든 지형 데이터를 들고 있으면 제작에 부담이 된다. 월드 컴포지션을 이용하면 거리 기반으로 레벨 스트리밍을 순차적으로 처리해 제작 과정을 줄을 수 있다.

월드 컴포지션은 레벨 디테일과 서브 레벨 등으로 나뉘어 다양한 역할을 수행한다. 특히 레이어 기능을 이용하면 레이어마다 랜드스케이프를 할당해 스트리밍 거리를 세팅할 수 있다. 이용 역시 간단한데 레이어 할당 기능을 추가하면 해당 레이어에 선택한 랜드스케이프만 선택이 되어 각 랜드스케이프를 따로 관리할 수도 있다.

월드 컴포지션의 또 다른 장점은 터레인 프록시 LOD 메시를 생성이다. 레이어에 랜드스케이프 디스턴스를 세팅해주고 터레인 프록시 LOD를 만들면 멀리 있는 것들을 자동으로 스테틱 메시로 변경된다.

다음 과정은 폴리지 최적화다. UE4는 폴리지 페인트 툴, 프로시저럴 폴리지, 랜드스케이프 그래스 툴 등 3가지의 폴리지 제작 툴이 있다. 폴리지 페인트 툴은 자신이 원하는 지역에 그린 것을 페인트 툴에 담아 폴리지를 생성하는 기능이다. 프로시저럴 폴리지는 이름 그대로 볼륨 안 폴리지에 프로시저럴 하게 배치하는 기능이다.




포트나이트는 랜드스케이프 그래스 툴을 이용해 제작했다. 먼저 폴리지 스태틱 메시를 준비하고 랜드스케이프 그래스 타입을 이용한다. 폴리지, 모델링 만든 것을 랜드스케이프 그래스 타입을 선택해 메시로 적용할 수 있다. 세팅 값도 직접 조절할 수 있고 이후 머티리얼에 추가된 그래스 타입을 넣어 설정하면 랜드스케이프에 자동으로 제작한 그래스가 생성된다. 칠하기 메뉴에서 원하는 지형에 추가해 자동으로 그래스를 생성할 수도 있다.

다음은 폴리지 최적화다. 포트나이트는 컬 디스턴스로 멀리 있는 것은 렌더링 하지 않고 밀도 스케일을 조절해 모바일은 덜 생성하게 할 수도 있다. 풀이 흔들리게 하는 버텍스 셰이더의 회전값도 제거했다. 버텍스 셰이더의 경우에는 모바일에서 아에 사용하지 않았다. 여기에 그래스 덴시티를 조절해 폴리지 밀도를 변경했고 폴리지 LOD도 어느 정도 거리가 되면 트라이앵글 값을 낮춰 최적화했다.

폴리지 오버드로 과정으로 실제 오버드로도 줄였고 폴리지의 메시, 셰이더의 인스트럭션 값도 줄여 복잡도를 낮췄다. 한편, UE 4.20에서는 모바일 통계 기능이 새롭게 개선될 예정인데 이를 통해 어떤 식으로 인스트럭터 값을 사용하고 있는지 더 자세히 확인할 수 있다.




포트나이트는 하늘을 나는 버스를 타고 가다 원하는 위치에서 뛰어내려야 한다. 이때 상공에서 보는 경우를 위해 무수히 많은 나무나 지물이 렌더링 돼야 한다. 하지만 모바일에서는 이 많은 지물을 표현하는 데에 부하가 크게 작용한다.

이때 사용한 것이 임포스터 베이커다. UE4에 사용된 이 플러그인은 오픈 필드에서 자연물 렌더링의 처리 부하를 줄이기 위해 사용된다. 임포스터 베이커는 깃허브에서 직접 받아 플러그인으로 활용할 수 있다.

임포스터 베이커는 진화된 빌보드 형태로 카메라에 맞춰 메시만 회전하는 기존 빌보드와 달리 메시와 텍스처가 함께 회전한다. 이를 위해 다양한 각도에서 대상을 캡처하고 각 뷰를 아틀러스 테스처로 저장해 정 팔면체와 반 팔면체 형태로 매핑 처리한다.




시연 맵에서는 200만 개의 폴리 카운트가 임포스터 베이커 이후 36만 개로 줄어들었다. 하지만 아직 드로 콜이 걱정되는 상황이다. 이에 최용훈 개발자는 드로 콜 최적화를 위한 HLOD 기능을 사용했다.

드로 콜은 HLOD 기능을 이용해 최적화할 수 있는데 우선 클러스터를 만든다. 클러스터는 수동, 혹은 자동으로 만들 수 있는데 제너레이트 프록시 메시 생성을 선택하면 메시를 합치고 줄여 최적화를 용이하게 한다. 드로 콜 역시 여기에서 이용할 수 있다.

포트나이트는 지역마다 지오메트리가 나눠져 있는데 HLOD 기능으로 380,000개의 지오메트리를 12,906개까지 줄일 수 있었다.




나무같이 LOD로 표현해도 면이 많은 임포스터를 HLOD에 사용하면 추가적으로 최적화를 할 수 있다. ‘Use MaxLOD as Imposter’ 옵션을 체크해 이용할 수 있는데 일정 거리 이상으로 지나가면 HLOD로 변화시키는 Transition Screen Size 세팅으로 작동 거지로 설정할 수 있다.

포트나이트는 HLOD 하나만 사용하면 단순한 형태의 메쉬가 생성되는데 임포스터를 이용하면 나무의 형태도 또렷하게 살리면서 살리면서 드로콜을 줄일 수 있다. 포트나이트는 항상 로드되는 메모리에서 드라이앵글을 최대 18만 개까지 절약할 수 있었다. HLOD에 임포스터까지 사용하자 포트나이트의 지오메트리는 38만 개에서 6천 개까지 줄었다.

임포스터를 이용한 HLOD는 모바일뿐만 아니라 PC, 콘솔에서도 사용이 가능하여 최적화가 필요한 경우라면 적용해볼 수 있다.







댓글

새로고침
새로고침

기사 목록

1 2 3 4 5