플랫폼별 최적화
PC, 콘솔, 모바일 각 플랫폼에 맞는 최적화 전략
PC 스케일링
다양한 사양 대응
# 품질 레벨: 0 (Low) ~ 4 (Cinematic)
# 카테고리별 설정
sg.ViewDistanceQuality=3
sg.AntiAliasingQuality=3
sg.ShadowQuality=3
sg.PostProcessQuality=3
sg.TextureQuality=3
sg.EffectsQuality=3
sg.FoliageQuality=3
Dynamic Resolution
# 프레임 시간에 따라 해상도 동적 조정
r.DynamicRes.OperationMode=2 # 0: 비활성화, 1: 활성화, 2: 자동
r.DynamicRes.MinScreenPercentage=50
r.DynamicRes.MaxScreenPercentage=100
콘솔 최적화 (PS5/XSX)
고정 사양 최적화
PS5 / Xbox Series X
Lumen HWRT 60fps 가능
Nanite + VSM 정상 작동
4K 타겟
Xbox Series S
XSX 대비 1/3 GPU 성능
별도 품질 프리셋 필수
1080p~1440p 타겟
UE 5.5+ 60 FPS 달성
- Lumen HWRT 60fps: PS5/XSX에서 가능해짐
- Nanite + VSM: 콘솔에서 정상 작동
- TSR: 업스케일링으로 네이티브 해상도 감소
XSS는 XSX 대비 약 1/3 GPU 성능입니다. 별도의 품질 프리셋이 필수이며, 해상도 스케일링을 적극 활용하세요.
모바일 최적화
제한된 리소스 대응
핵심 제한사항
| 항목 | 제한값 |
|---|---|
| Draw Call | < 700 (뷰당) |
| 삼각형 | < 500k (뷰당) |
| 텍스처 샘플러 | 최대 5개 |
# DefaultDeviceProfiles.ini
[iPhone12]
+CVars=r.MobileContentScaleFactor=2.0
[iPadPro]
+CVars=r.MobileContentScaleFactor=1.5
Masked/Transparent 최소화. iOS는 Opaque 표면 셰이딩에 최적화되어 있어, 오버드로우로 GPU 시간이 2배 이상 증가할 수 있습니다.
Device Profile과 스케일링 자동화
기기별 최적 설정 자동 적용
Device Profile은 UE5의 플랫폼별 설정 관리 시스템입니다. 기기 사양에 따라 CVar를 자동으로 설정하여 최적의 성능을 달성합니다.
// DefaultDeviceProfiles.ini
[Windows DeviceProfile]
DeviceType=Windows
+CVars=r.ScreenPercentage=100
+CVars=sg.ShadowQuality=3
[WindowsLow DeviceProfile]
DeviceType=Windows
+CVars=r.ScreenPercentage=75
+CVars=sg.ShadowQuality=1
+CVars=r.DynamicRes.OperationMode=2
// C++에서 Device Profile 감지 및 적용
void UMyGameInstance::ApplyDeviceProfile()
{
UDeviceProfileManager& Manager =
UDeviceProfileManager::Get();
FString ProfileName =
Manager.GetActiveDeviceProfileName();
// GPU 벤치마크 기반 프로파일 선택
float GPUBenchmark =
FPlatformMisc::GetGPUBenchmarkResults();
if (GPUBenchmark < 50.0f)
{
Manager.SetActiveDeviceProfile(
Manager.FindProfile("WindowsLow"));
}
}
첫 실행 시 SynthBenchmark를 자동 실행하여 GPU/CPU 점수를 측정하고, 결과에 따라 적절한 Device Profile을 적용하면 사용자 경험이 크게 향상됩니다.
Device Profile은 계층 구조를 지원합니다. 공통 설정은 부모 프로파일에, 기기별 차이만 자식 프로파일에 정의하여 관리 복잡성을 줄이세요.
핵심 요약
- PC: Scalability 시스템, Dynamic Resolution으로 다양한 사양 대응
- 콘솔: UE 5.5+에서 Lumen HWRT 60fps 가능, XSS는 별도 프리셋
- 모바일: Draw Call < 700, 삼각형 < 500k, 샘플러 < 5개
- Device Profile: 기기별 CVar 자동 적용으로 최적 성능
- 공통: TSR/DLSS/FSR로 업스케일링 활용
다음 강의에서는 빌드 및 배포 최적화를 다룹니다.
도전 과제
배운 내용을 직접 실습해보세요
Scalability.ini를 편집하여 Low/Medium/High/Epic 4단계 프리셋을 커스터마이징하세요. 각 레벨에서 sg.ShadowQuality, sg.ViewDistanceQuality, sg.EffectsQuality를 조정하고 프레임 레이트 변화를 측정합니다.
r.DynamicRes.OperationMode=2로 설정한 후, 부하가 높은 씬에서 Screen Percentage가 자동으로 조정되는 것을 stat unit으로 관찰하세요. MinScreenPercentage를 50~80 사이로 변경하며 시각적 품질 차이를 비교합니다.
DefaultDeviceProfiles.ini에 3개 이상의 Device Profile을 구성하고, SynthBenchmark 결과에 따라 자동으로 적절한 프로파일을 선택하는 시스템을 C++로 구현하세요. GPU 점수 기준: Low(0-30), Medium(30-60), High(60+).