ASSET BUDGET

에셋 최적화 예산 관리

Texture, Mesh, Material을 줄인다는 말만으로는 최적화가 되지 않는다. Texture Group, mip, LOD, shader complexity, draw call, streaming pool을 실제 플랫폼 예산과 연결해 어떤 에셋이 비용을 쓰는지 찾아야 한다.

01

예산 설정

플랫폼별 texture memory, triangle count, draw call, shader cost 기준을 먼저 잡는다.

목표가 없으면 줄여도 충분한지 모른다
02

Texture 정리

Texture Group, max size, compression, mip 생성 여부를 용도별로 조정한다.

UI와 world texture는 기준이 다르다
03

Mesh 단계화

LOD 거리, collision 복잡도, Nanite 사용 가능성을 모델별로 나눈다.

보이지 않는 뒤쪽 폴리곤도 비용이다
04

Material 비용 확인

shader complexity와 overdraw view로 투명, layer, dynamic branch 비용을 본다.

고해상도 텍스처보다 셰이더가 병목일 수 있다
05

런타임 측정

stat unit, stat gpu, stat streaming으로 실제 플레이 장면의 병목을 기록한다.

콘텐츠 브라우저 수치와 플레이 비용은 다르다
Texture
메모리와 선명도 표시 크기보다 큰 원본은 mip과 max size로 제한한다.
streaming pool warning을 본다
Mesh
기하 비용 거리별 LOD와 collision 단순화로 CPU/GPU 비용을 나눠 줄인다.
complex collision은 물리 비용을 만든다
Material
셰이더와 overdraw 투명, masked, 다중 texture sample이 많은 머티리얼을 우선 본다.
view mode가 빠른 힌트를 준다
Platform
대상별 품질 Device Profile과 Scalability 설정으로 같은 에셋의 상한을 다르게 둔다.
모바일과 PC를 같은 값으로 묶지 않는다

측정 확인

뷰 모드 Shader Complexity, LOD Coloration, Quad Overdraw로 비용 위치를 표시한다.
stat 기록 stat gpu와 stat streaming을 같은 카메라 위치에서 전후 비교한다.
플랫폼 실행 에디터가 아니라 대상 기기에서 텍스처 풀과 프레임을 확인한다.