Shader Complexity 분석
셰이더 복잡도를 시각화하고 머티리얼을 최적화합니다
Shader Complexity 뷰 모드
셰이더 비용 시각화
뷰포트에서 Shader Complexity 모드를 활성화하면 셰이더 비용을 색상으로 시각화합니다.
# 에디터 뷰포트
View Mode > Optimization Viewmodes > Shader Complexity
# 오버드로우 확인
View Mode > Optimization Viewmodes > Shader Complexity & Quads
색상 해석
검정 ~ 짙은 초록
낮은 복잡도, 최소 GPU 처리. 이상적인 상태
노랑 ~ 주황
중간 복잡도. 주의 필요, 최적화 검토
빨강 ~ 흰색
높은 복잡도, 성능 병목 가능. 즉시 최적화 필요
머티리얼 비용 순위
Blend Mode별 비용
Blend Mode별 특징
| Blend Mode | 특징 | 권장 사용 |
|---|---|---|
| Opaque | 불투명, 가장 효율적 | 대부분의 오브젝트 |
| Masked | 알파 마스크, 중간 비용 | 잎사귀, 펜스 등 |
| Translucent | 반투명, 모든 레이어 셰이딩 | 유리, 물 (최소 영역) |
Translucent 머티리얼은 화면의 작은 부분에만 사용하세요. 모든 레이어가 셰이딩되어 프레임 GPU 시간이 2배 이상 증가할 수 있습니다.
머티리얼 최적화
셰이더 비용 줄이기
최적화 체크리스트
| 문제 | 해결책 |
|---|---|
| 과도한 텍스처 샘플러 | 최대 5개, 적을수록 좋음 |
| 복잡한 부모 머티리얼 | 기본 머티리얼로 새로 생성 |
| 불필요한 기능 | 안개, 레이트레이스 그림자 비활성화 |
| Thin Translucent | Lit로 변경하여 렌더링 경로 단순화 |
// 마스터 머티리얼 1개 + 인스턴스 N개
// 셰이더 컴파일 1회, 파라미터만 변경
M_Character_Master // 마스터
├── MI_Character_Red // 인스턴스
├── MI_Character_Blue // 인스턴스
└── MI_Character_Green // 인스턴스
오버드로우 감소
동일 픽셀 중복 렌더링 방지
오버드로우는 동일 프레임에서 같은 화면 픽셀을 여러 번 렌더링하는 현상입니다.
주요 원인
- 밀집된 폴리지 - 겹치는 잎사귀가 많은 식물
- 투명 머티리얼 - 모든 레이어가 셰이딩됨
- 파티클 시스템 - 겹치는 파티클
감소 전략
지오메트리 단순화
복잡한 알파 마스크 대신 실제 지오메트리 사용
Masked → Opaque
가능한 경우 Masked blend mode 대신 Opaque 사용
파티클 최적화
파티클 수 제한, 스폰 레이트 조절
핵심 요약
- Shader Complexity 뷰 모드로 셰이더 비용 시각화
- 색상 해석: 초록 = 좋음, 빨강/흰색 = 최적화 필요
- 비용 순위: Opaque < Masked < Translucent
- 텍스처 샘플러: 최대 5개, 적을수록 좋음
- 오버드로우: 투명 머티리얼, 파티클 최소화
다음 강의에서는 Nanite, Lumen, VSM의 최적화 설정을 다룹니다.
도전 과제
배운 내용을 직접 실습해보세요
Material Editor의 Stats에서 가장 비용이 큰 머티리얼 5개를 식별하세요. 각 머티리얼의 Base Pass 인스트럭션 수를 기록하고, 100 인스트럭션 이하로 최적화합니다.
Shader Complexity 뷰모드에서 오버드로우가 심한 영역을 찾고, 파티클/이펙트의 Draw Order를 조정하세요. Translucent 오브젝트를 Masked로 변환 가능한 경우 변환하여 비용을 줄입니다.
머티리얼의 Quality Switch 노드를 활용하여 Low/High 품질 경로를 분리하세요. 카메라 거리에 따라 디테일 텍스처 레이어를 비활성화하는 Material LOD를 구현합니다.