성능 프로파일링
GPU 타이밍과 Ray Tracing 인스턴스 관리
GPU 프로파일링
// 기본 타이밍
Stat GPU
// 상세 분석
ProfileGPU
// Lumen 개별 측정 (Async Compute 비활성화)
r.Lumen.AsyncCompute 0
- Lumen Scene Lighting - Surface Cache 조명 평가
- Lumen Screen Probe Gather - 디퓨즈 GI, 러프 리플렉션
- Lumen Reflections - 스무스 표면 전용 리플렉션
RT 인스턴스 관리
// 목표: 100,000 인스턴스 미만 유지
Stat SceneRendering // "Ray tracing active instances" 확인
// 컬링 설정
r.RayTracing.Culling=3
r.RayTracing.Culling.Radius=15000 // 150m
Ray Tracing active instances를 100,000 미만으로 유지하세요.
Lumen 시각화 모드
View Mode를 활용한 문제 진단
// Lumen 시각화 모드들
r.Lumen.Visualize.Mode = 1 // Surface Cache
r.Lumen.Visualize.Mode = 2 // Mesh SDFs
r.Lumen.Visualize.Mode = 3 // Global SDF
r.Lumen.Visualize.Mode = 4 // Radiance Cache
// Card 배치 확인
r.Lumen.Visualize.CardPlacement = 1
// 뷰 모드 (에디터)
// View Modes > Lumen > Overview
// View Modes > Lumen > Surface Cache
핑크색 영역 = Surface Cache 커버리지 부족. 메시에 Card를 추가하거나 메시를 분리하세요. 검은색 영역 = Distance Field 누락. Static Mesh에 Distance Field 생성을 확인하세요.
Async Compute 최적화
Lumen과 Nanite의 병렬 실행
// Lumen Async Compute (개별 타이밍 측정 시 비활성화)
r.Lumen.AsyncCompute = 1 // 프로덕션
r.Lumen.AsyncCompute = 0 // 프로파일링 시
// 주의: Async Compute 활성화 상태에서
// ProfileGPU 타이밍이 겹칠 수 있음
// 정확한 개별 비용 측정 시 비활성화 후 측정
Async Compute가 활성화된 상태에서는 ProfileGPU의 타이밍이 실제 병렬 실행 비용을 정확히 반영하지 못합니다. 개별 시스템 비용을 정확히 측정하려면 일시적으로 r.Lumen.AsyncCompute = 0으로 설정하세요.
핵심 요약
- Stat GPU, ProfileGPU로 성능 분석
- RT 인스턴스 100,000 미만 유지
- Lumen 시각화 모드로 문제 영역 진단
- Async Compute 비활성화 후 정확한 개별 비용 측정
도전 과제
배운 내용을 직접 실습해보세요
ProfileGPU를 실행하여 Lumen Scene Lighting, Screen Probe Gather, Reflections 각 항목의 GPU 비용을 기록하세요. 가장 비용이 높은 항목을 식별하고 관련 설정을 조정하여 개선하세요.
stat SceneRendering에서 "Ray tracing active instances"를 확인하고, r.RayTracing.Culling 및 r.RayTracing.Culling.Radius 값을 조절하여 100,000 미만으로 유지하면서 시각적 품질 손실을 최소화하세요.
Unreal Insights(-trace=default,gpu)를 사용하여 전체 프레임의 CPU/GPU 타임라인을 캡처하고, Lumen의 Async Compute 작업이 그래픽스 큐와 어떻게 병렬 실행되는지 분석하세요. 병렬화 효율을 수치로 계산하세요.