PART 3 · 강의 2/4

Shader Complexity 분석

셰이더 복잡도를 시각화하고 머티리얼을 최적화합니다

01

Shader Complexity 뷰 모드

셰이더 비용 시각화

뷰포트에서 Shader Complexity 모드를 활성화하면 셰이더 비용을 색상으로 시각화합니다.

⭐ 활성화 방법
코드 숨기기
# 에디터 뷰포트 View Mode > Optimization Viewmodes > Shader Complexity # 오버드로우 확인 View Mode > Optimization Viewmodes > Shader Complexity & Quads

색상 해석

🎨 Shader Complexity 색상 가이드
검정 ~ 짙은 초록 ✅ 이상적 (최소 비용)
노랑 ~ 주황 ⚠️ 주의 필요
빨강 ~ 흰색 🚨 즉시 최적화 필요

검정 ~ 짙은 초록

낮은 복잡도, 최소 GPU 처리. 이상적인 상태

노랑 ~ 주황

중간 복잡도. 주의 필요, 최적화 검토

빨강 ~ 흰색

높은 복잡도, 성능 병목 가능. 즉시 최적화 필요

02

머티리얼 비용 순위

Blend Mode별 비용

💰 Blend Mode별 GPU 비용
Opaque:
낮음 ✅
Masked:
중간 ⚠️
Translucent:
높음 🚨

Blend Mode별 특징

Blend Mode 특징 권장 사용
Opaque 불투명, 가장 효율적 대부분의 오브젝트
Masked 알파 마스크, 중간 비용 잎사귀, 펜스 등
Translucent 반투명, 모든 레이어 셰이딩 유리, 물 (최소 영역)
Translucent 주의

Translucent 머티리얼은 화면의 작은 부분에만 사용하세요. 모든 레이어가 셰이딩되어 프레임 GPU 시간이 2배 이상 증가할 수 있습니다.

03

머티리얼 최적화

셰이더 비용 줄이기

최적화 체크리스트

문제 해결책
과도한 텍스처 샘플러 최대 5개, 적을수록 좋음
복잡한 부모 머티리얼 기본 머티리얼로 새로 생성
불필요한 기능 안개, 레이트레이스 그림자 비활성화
Thin Translucent Lit로 변경하여 렌더링 경로 단순화
머티리얼 인스턴스 활용
코드 보기
// 마스터 머티리얼 1개 + 인스턴스 N개 // 셰이더 컴파일 1회, 파라미터만 변경 M_Character_Master // 마스터 ├── MI_Character_Red // 인스턴스 ├── MI_Character_Blue // 인스턴스 └── MI_Character_Green // 인스턴스
04

오버드로우 감소

동일 픽셀 중복 렌더링 방지

오버드로우는 동일 프레임에서 같은 화면 픽셀을 여러 번 렌더링하는 현상입니다.

주요 원인

  • 밀집된 폴리지 - 겹치는 잎사귀가 많은 식물
  • 투명 머티리얼 - 모든 레이어가 셰이딩됨
  • 파티클 시스템 - 겹치는 파티클

감소 전략

지오메트리 단순화

복잡한 알파 마스크 대신 실제 지오메트리 사용

Masked → Opaque

가능한 경우 Masked blend mode 대신 Opaque 사용

파티클 최적화

파티클 수 제한, 스폰 레이트 조절

SUMMARY

핵심 요약

  • Shader Complexity 뷰 모드로 셰이더 비용 시각화
  • 색상 해석: 초록 = 좋음, 빨강/흰색 = 최적화 필요
  • 비용 순위: Opaque < Masked < Translucent
  • 텍스처 샘플러: 최대 5개, 적을수록 좋음
  • 오버드로우: 투명 머티리얼, 파티클 최소화
다음 단계

다음 강의에서는 Nanite, Lumen, VSM의 최적화 설정을 다룹니다.

PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 셰이더 인스트럭션 분석

Material Editor의 Stats에서 가장 비용이 큰 머티리얼 5개를 식별하세요. 각 머티리얼의 Base Pass 인스트럭션 수를 기록하고, 100 인스트럭션 이하로 최적화합니다.

실습 2: 오버드로우 최소화

Shader Complexity 뷰모드에서 오버드로우가 심한 영역을 찾고, 파티클/이펙트의 Draw Order를 조정하세요. Translucent 오브젝트를 Masked로 변환 가능한 경우 변환하여 비용을 줄입니다.

심화 과제

머티리얼의 Quality Switch 노드를 활용하여 Low/High 품질 경로를 분리하세요. 카메라 거리에 따라 디테일 텍스처 레이어를 비활성화하는 Material LOD를 구현합니다.