프로젝트 최적화가 항상 쉽지는 않습니다. 경우에 따라 밀리초 단위가 가장 중요할 수도 있으므로 최고의 퍼포먼스를 얻기 어려울 수 있습니다.
프로젝트 최적화 시작하기
프로젝트 최적화를 통해 퍼포먼스를 향상시킬 수 있는 방법은 여러 곳에서 찾을 수 있습니다. 최적화를 시작하는 방법에는 콘텐츠 제작 워크플로 향상, 각 프레임의 렌더링에 시간이 걸리는 지점을 파악하기 위한 프로파일링 캡처, 에디터 내장 툴이 있습니다.
언리얼 엔진은 아무것도 구성하지 않고도 퍼포먼스를 위해 프로젝트를 최적화할 수 있도록 기본으로 다양한 경량화 작업을 수행합니다. 하지만 각 프로젝트의 필요에 더 잘 맞도록 내장 시스템을 조정할 수도 있습니다.
아래 가이드에서는 흔한 퍼포먼스 문제를 파악하는 방법과 문제를 찾을 수 있는 장소를 알려드립니다. 프로젝트를 최적화하고 퍼포먼스를 향상시킬 수 있는 에디터의 몇 가지 툴에 대해서도 설명합니다.
렌더링 파이프라인 최적화
어떤 최적화는 언리얼 엔진이 사용하는 렌더링 파이프라인에 직접적인 영향을 미칠 수 있습니다. 이러한 최적화 방식은 전반적인 프로젝트 퍼포먼스를 향상시킬 수도 있고, 원하는 특정 플랫폼에 맞출 수도 있습니다.
예를 들어, 언리얼 엔진은 디퍼드(Deferred) 패스(디폴트)와 포워드 렌더러를 통해 다양한 렌더링 패스를 제공합니다. VR이나 모바일 같은 플랫폼에서는 포워드 렌더러를 사용해 퍼포먼스를 높일 수 있지만, 엔진의 모든 렌더링 기능을 지원하지는 않습니다.
네이티브 해상도로 렌더링하지 않고 렌더링 해상도를 낮춘 뒤, 스케일을 키우되 시각적 충실도는 네이티브 해상도와 동일한 수준으로 유지할 수 있도록 렌더링 파이프라인을 변경하여 퍼포먼스를 높일 수도 있습니다.
환경설정 파일 및 확장성 최적화
콘솔 명령과 환경설정 파일을 통해 프로퍼티를 설정하면 애플리케이션이 목표로 하는 경험이나 플랫폼 종류에 맞게 프로젝트의 스케일을 조절할 수 있습니다.
콘솔 명령은 특정 프로퍼티를 호출하고 설정하는 데 사용됩니다. 환경설정 파일과 확장성 세팅에 사용하면 프로젝트 개발이나 최종 제품 출시를 위해 렌더링된 이미지의 퀄리티와 퍼포먼스를 향상시킬 수 있습니다. 환경설정 파일은 이처럼 호출 가능한 확장성 세팅을 저장하여 자동으로 프로젝트에 맞게 설정할 수 있으며, 플랫폼에 맞출 수도 있습니다.
예를 들어, 저사양 하드웨어에서 애플리케이션을 더 잘 실행할 수 있도록 사용자가 직접 선택할 수 있는 여러 확장성 옵션을 가진 환경설정 파일을 구성할 수 있습니다. 또는, 애플리케이션을 실행할 특정 플랫폼에 맞춰 앱을 가장 잘 최적화하는 프리셋을 환경설정 파일에 저장할 수도 있습니다.
에셋 최적화
프로젝트의 에셋 최적화는 프로젝트 개발 시 워크플로를 선택하는 것부터 시작합니다. 경우에 따라 언리얼 엔진의 툴과 가장 잘 맞는 방식으로 에셋을 만드는 것이 좋을 수 있습니다. 혹은 에디터 내장 툴로 이 작업을 대체할 수도 있습니다.
예를 들어, 레벨 오브 디테일(LOD) 메시를 오브젝트별로 직접 만들려면 시간이 오래 걸립니다. 언리얼 엔진은 메시를 위해 LOD를 생성하는 자체 자동 툴을 제공합니다. LOD 생성 방식을 결정하는 프로퍼티를 직접 환경설정할 수도 있고, 작업이 자동 수행되도록 할 수도 있습니다.
아래의 내장 툴과 시스템은 프로젝트 개발 과정에서 퍼포먼스를 향상하는 데 도움이 됩니다.
디버깅 및 프로파일링 툴
언리얼 엔진은 자체 디버깅 및 프로파일링 툴과 여러 외부 애플리케이션용 플러그인을 제공합니다. 이러한 툴은 퍼포먼스 향상을 위한 영역을 찾고 파악하는 데 유용합니다.
예를 들어, 레벨 에디터의 시각화 모드를 사용하면 현재 화면에서 렌더링되고 있는 머티리얼의 비용을 시각적으로 확인할 수 있습니다. CPU와 GPU의 프로파일링 툴은 개별 프레임을 캡처해 렌더링되고 있는 대상의 밀리초 단위 비용을 분석합니다. 이러한 정보가 있으면 한 프레임에서 렌더링에 가장 오랜 시간이 걸리는 것이 무엇인지 알 수 있습니다. 비용이 높은 항목을 확인하면 해당 요소를 더 잘 최적화할 수 있는 경우도 있습니다.
아래의 툴은 프로젝트의 다양한 요소를 디버그 및 프로파일하여 퍼포먼스 최적화 기회를 찾는 데 도움이 됩니다.