PART 07 · 강의 2/3

머티리얼 LOD

Quality Switch, Feature Level Switch, 플랫폼별 머티리얼 최적화로 다양한 환경에 대응합니다.

01

Quality Switch 노드

퀄리티 레벨별 머티리얼 분기

QualitySwitch 노드는 프로젝트의 퀄리티 레벨(Low/Medium/High/Epic)에 따라 다른 머티리얼 로직을 적용합니다.

Quality Switch Usage QualitySwitch Low: Constant(0.5) // 저품질: 상수값 Medium: TextureSample (256x256) // 중품질: 작은 텍스처 High: TextureSample (1024x1024) // 고품질: 원본 텍스처 Epic: DetailTexture + Normal // 최고: 풀 디테일Output // 실전 활용 예: // Low: 디테일 노말 없이, 텍스처 1장 // High: 디테일 노말 + 디테일 텍스처 + 풀 노드 // 런타임에 퀄리티 변경: // sg.MaterialQualityLevel 0/1/2/3
각 퀄리티별 셰이더 컴파일

Quality Switch의 각 분기는 별도 셰이더로 컴파일됩니다. 모든 퀄리티 레벨을 연결하면 셰이더 변형이 증가하므로, 필요한 레벨만 연결하세요. Default 핀은 명시적으로 연결되지 않은 레벨의 폴백으로 사용됩니다.

02

Feature Level Switch

셰이더 모델별 분기

FeatureLevelSwitch는 렌더링 API/셰이더 모델에 따라 분기합니다. 모바일(ES3.1)과 데스크톱(SM5/SM6)에 다른 머티리얼을 적용할 때 사용합니다.

Feature Level Switch FeatureLevelSwitch ES3.1: 간단한 디퓨즈만 // 모바일 SM5: PBR + 디테일 노말 // 데스크톱 DX11 SM6: PBR + Substrate 풀셋 // 데스크톱 DX12Output // 모바일 최적화 전략: // ES3.1: 텍스처 2장 이하, 노말맵 생략 가능 // SM5: 텍스처 4~6장, 노말맵 포함 // SM6: 제한 없음, 최고 품질
03

메시 LOD별 머티리얼 교체

거리에 따른 머티리얼 단순화

Static Mesh의 LOD 레벨별로 다른 머티리얼을 할당할 수 있습니다. 먼 거리에서는 단순한 머티리얼로 교체하여 GPU 부하를 줄입니다.

LOD Material Setup // Static Mesh 에디터에서 LOD별 머티리얼 설정 LOD 0 (근거리): Material: MI_Rock_HighDetail // 4장 텍스처 + 디테일 노말 + 패럴랙스 LOD 1 (중거리): Material: MI_Rock_MedDetail // 2장 텍스처 + 기본 노말 LOD 2 (원거리): Material: MI_Rock_LowDetail // 1장 텍스처만, 상수 Roughness LOD 3 (매우 먼 거리): Material: MI_Rock_Minimal // 상수 색상만, Unlit 가능
Nanite와 머티리얼 LOD

UE5의 Nanite는 메시의 지오메트리 LOD를 자동 처리하지만, 머티리얼 LOD는 자동으로 처리하지 않습니다. Nanite 메시라도 원거리에서의 머티리얼 단순화는 수동으로 구성해야 합니다. Quality Switch와 Distance 기반 Lerp를 조합하여 구현하세요.

04

플랫폼별 머티리얼 전략

PC, 콘솔, 모바일 대응

플랫폼권장 텍스처 수인스트럭션특이사항
PC (High-end)8~12~300Substrate 풀셋 활용 가능
콘솔 (PS5/Xbox)6~8~200고정 하드웨어, 메모리 관리 중요
모바일2~4~50ES3.1, 텍스처 크기 제한, 발열 주의
VR4~6~100양안 렌더링으로 2배 비용, 90fps 필수
모바일 머티리얼 제한

모바일에서는 Fully Rough(Roughness=1, 스페큘러 비활성화)와 Unlit 셰이딩 모델을 적극 활용하세요. Specular 계산 제거만으로 성능이 크게 향상됩니다. 또한 텍스처는 ASTC/ETC2 압축을 사용하고 크기를 512x512 이하로 유지하세요.

SUMMARY

핵심 요약

  • QualitySwitch로 Low/Medium/High/Epic 퀄리티별 머티리얼 분기를 만듭니다.
  • FeatureLevelSwitch로 ES3.1(모바일)과 SM5/SM6(데스크톱)을 분리합니다.
  • 메시 LOD 레벨별로 다른 머티리얼을 할당하여 원거리 오브젝트를 단순화합니다.
  • Nanite는 지오메트리 LOD만 자동이며, 머티리얼 LOD는 수동으로 구성해야 합니다.
  • 플랫폼별 텍스처 수, 인스트럭션 수 한도를 준수합니다.
PRACTICE

도전 과제

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

실습 1: Quality Switch 노드 활용

QualitySwitch 노드를 사용하여 Low 퀄리티에서는 단순 색상, High 퀄리티에서는 복잡한 텍스처 블렌딩을 사용하는 머티리얼을 만드세요. sg.EffectsQuality로 전환을 테스트하세요.

실습 2: 거리 기반 머티리얼 LOD

CameraPosition과 ObjectPosition의 거리를 계산하여, 가까울 때는 디테일 텍스처+Normal Map, 먼 거리에서는 단순화된 표현을 사용하는 자동 LOD 시스템을 머티리얼 내에서 구현하세요.

심화 과제: 프로젝트 전체 머티리얼 최적화 파이프라인

프로젝트의 모든 머티리얼에 대해 LOD 전략을 수립하세요: 마스터 머티리얼에 Quality Switch를 통합하고, Material Instance별 LOD Bias를 설정하여 모바일/PC 크로스 플랫폼 최적화를 구현하세요.