PART 7 - 강의 1/5

PC 티어별 설정

Low, Medium, High, Epic, Cinematic 티어 최적화

01

Scalability 시스템

Scalability란?

UE5의 Scalability 시스템은 다양한 하드웨어 사양에 맞춰 그래픽 품질을 자동으로 조절하는 프레임워크입니다. 각 티어(Low~Cinematic)별로 렌더링 설정을 그룹화하여 관리합니다.

티어 대상 GPU 타겟 FPS
Low GTX 1050 / RX 560 30fps @ 1080p
Medium GTX 1660 / RX 5600 60fps @ 1080p
High RTX 3060 / RX 6700 60fps @ 1440p
Epic RTX 4070 / RX 7800 60fps @ 4K
Cinematic RTX 4090 / RX 7900 30fps @ 4K (품질 우선)
02

Nanite 티어 설정

Scalability/Nanite.ini ; Low - Nanite 비활성화 (폴백 메시 사용) [ViewDistanceQuality@0] r.Nanite = 0 ; Medium - 기본 Nanite [ViewDistanceQuality@1] r.Nanite = 1 r.Nanite.MaxPixelsPerEdge = 2.0 ; High - 향상된 디테일 [ViewDistanceQuality@2] r.Nanite = 1 r.Nanite.MaxPixelsPerEdge = 1.0 ; Epic - 최대 디테일 [ViewDistanceQuality@3] r.Nanite = 1 r.Nanite.MaxPixelsPerEdge = 1.0 r.Nanite.ViewMeshLODBias = 0 ; Cinematic - 극한 품질 [ViewDistanceQuality@4] r.Nanite = 1 r.Nanite.MaxPixelsPerEdge = 0.5 r.Nanite.ViewMeshLODBias = -1
03

Lumen 티어 설정

Scalability/Lumen.ini ; Low - Lumen 비활성화 [GlobalIlluminationQuality@0] r.Lumen.DiffuseIndirect.Allow = 0 r.Lumen.Reflections.Allow = 0 ; Medium - SWRT만 사용 [GlobalIlluminationQuality@1] r.Lumen.DiffuseIndirect.Allow = 1 r.Lumen.HardwareRayTracing = 0 r.Lumen.TraceMeshSDFs = 1 ; High - 향상된 SWRT [GlobalIlluminationQuality@2] r.Lumen.DiffuseIndirect.Allow = 1 r.Lumen.HardwareRayTracing = 0 r.Lumen.ScreenProbeGather.RadianceCache.NumMipmaps = 4 ; Epic - HWRT 활성화 [GlobalIlluminationQuality@3] r.Lumen.DiffuseIndirect.Allow = 1 r.Lumen.HardwareRayTracing = 1 r.Lumen.HardwareRayTracing.LightingMode = 2 ; Cinematic - 최대 품질 HWRT [GlobalIlluminationQuality@4] r.Lumen.DiffuseIndirect.Allow = 1 r.Lumen.HardwareRayTracing = 1 r.Lumen.HardwareRayTracing.LightingMode = 2 r.Lumen.Reflections.HardwareRayTracing.MaxRayIntensity = 100
04

VSM 티어 설정

Scalability/Shadows.ini ; Low - 전통적 섀도우 맵 [ShadowQuality@0] r.Shadow.Virtual.Enable = 0 ; Medium - 기본 VSM [ShadowQuality@1] r.Shadow.Virtual.Enable = 1 r.Shadow.Virtual.MaxPhysicalPages = 2048 r.Shadow.Virtual.SMRT.SamplesPerRayLocal = 4 ; High - 향상된 VSM [ShadowQuality@2] r.Shadow.Virtual.Enable = 1 r.Shadow.Virtual.MaxPhysicalPages = 4096 r.Shadow.Virtual.SMRT.SamplesPerRayLocal = 8 ; Epic - 고품질 VSM [ShadowQuality@3] r.Shadow.Virtual.Enable = 1 r.Shadow.Virtual.MaxPhysicalPages = 4096 r.Shadow.Virtual.SMRT.SamplesPerRayLocal = 8 r.Shadow.Virtual.SMRT.SamplesPerRayDirectional = 8 ; Cinematic - 최대 품질 VSM [ShadowQuality@4] r.Shadow.Virtual.Enable = 1 r.Shadow.Virtual.MaxPhysicalPages = 8192 r.Shadow.Virtual.SMRT.SamplesPerRayLocal = 16 r.Shadow.Virtual.SMRT.SamplesPerRayDirectional = 16
05

자동 감지 시스템

하드웨어 벤치마크 기반 자동 설정 // C++ 코드: 하드웨어 감지 후 적절한 티어 선택 void UGameUserSettings::RunHardwareBenchmark() { // GPU 성능 측정 float GPUScore = RunGPUBenchmark(); // VRAM 확인 int32 VRAM_MB = GetTotalVideoMemory(); // 티어 결정 if (GPUScore < 30 || VRAM_MB < 4096) SetOverallScalabilityLevel(0); // Low else if (GPUScore < 60 || VRAM_MB < 6144) SetOverallScalabilityLevel(1); // Medium else if (GPUScore < 100 || VRAM_MB < 8192) SetOverallScalabilityLevel(2); // High else SetOverallScalabilityLevel(3); // Epic }
SUMMARY

핵심 요약

  • Scalability 시스템으로 5단계 품질 관리
  • Low 티어에서는 Nanite/Lumen 비활성화 고려
  • Epic 이상에서 HWRT 활성화
  • 자동 벤치마크로 적절한 티어 선택
PRACTICE

도전 과제

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

실습 1: Scalability 프리셋 비교

동일한 씬에서 sg.ShadowQuality, sg.GlobalIlluminationQuality, sg.ViewDistanceQuality를 0~4로 변경하면서 시각적 차이와 FPS 변화를 기록하세요.

실습 2: 커스텀 Scalability ini 작성

프로젝트의 Config/Scalability 폴더에 커스텀 Scalability ini 파일을 작성하여 Nanite, Lumen, VSM 설정을 각 티어별로 정의하세요. 실제 타겟 GPU에서 테스트하세요.

심화 과제

하드웨어 벤치마크 기반 자동 티어 선택 시스템을 구현하세요. RunHardwareBenchmark() 결과에 따라 Nanite MaxPixelsPerEdge, Lumen 모드(SWRT/HWRT), VSM 페이지 풀 크기를 동적으로 조정하는 로직을 작성하고 다양한 GPU에서 검증하세요.