PART 5 · 강의 3/4

플랫폼별 최적화

PC, 콘솔, 모바일 각 플랫폼에 맞는 최적화 전략

01

PC 스케일링

다양한 사양 대응

🎮 PC Scalability 품질 레벨
0
Low
1
Medium
2
High
3
Epic
4
Cinematic
Scalability 시스템 설정
코드 보기
# 품질 레벨: 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

⭐ Dynamic Resolution 설정
코드 숨기기
# 프레임 시간에 따라 해상도 동적 조정 r.DynamicRes.OperationMode=2 # 0: 비활성화, 1: 활성화, 2: 자동 r.DynamicRes.MinScreenPercentage=50 r.DynamicRes.MaxScreenPercentage=100
02

콘솔 최적화 (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 주의사항

XSS는 XSX 대비 약 1/3 GPU 성능입니다. 별도의 품질 프리셋이 필수이며, 해상도 스케일링을 적극 활용하세요.

03

모바일 최적화

제한된 리소스 대응

핵심 제한사항

항목 제한값
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배 이상 증가할 수 있습니다.

04

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은 계층 구조를 지원합니다. 공통 설정은 부모 프로파일에, 기기별 차이만 자식 프로파일에 정의하여 관리 복잡성을 줄이세요.

SUMMARY

핵심 요약

  • PC: Scalability 시스템, Dynamic Resolution으로 다양한 사양 대응
  • 콘솔: UE 5.5+에서 Lumen HWRT 60fps 가능, XSS는 별도 프리셋
  • 모바일: Draw Call < 700, 삼각형 < 500k, 샘플러 < 5개
  • Device Profile: 기기별 CVar 자동 적용으로 최적 성능
  • 공통: TSR/DLSS/FSR로 업스케일링 활용
다음 단계

다음 강의에서는 빌드 및 배포 최적화를 다룹니다.

PRACTICE

도전 과제

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

실습 1: Scalability 프리셋 구성

Scalability.ini를 편집하여 Low/Medium/High/Epic 4단계 프리셋을 커스터마이징하세요. 각 레벨에서 sg.ShadowQuality, sg.ViewDistanceQuality, sg.EffectsQuality를 조정하고 프레임 레이트 변화를 측정합니다.

실습 2: Dynamic Resolution 테스트

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+).