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에서 검증하세요.