PART 7 - 강의 5/5

종합 프로파일링 가이드

Nanite, Lumen, VSM 통합 성능 분석

01

프로파일링 도구

도구 용도 활성화
Unreal Insights CPU/GPU 타임라인 분석 -trace=default,gpu
GPU Profiler GPU 패스별 시간 ProfileGPU (Ctrl+Shift+,)
RenderDoc 프레임 단위 분석 -RenderDoc
PIX Xbox/DirectX 분석 외부 도구
Nsight NVIDIA GPU 분석 외부 도구
02

Nanite 프로파일링

Nanite 통계 명령어 // 기본 통계 stat Nanite // 출력 정보: Triangles: 45,234,567 // 렌더링된 삼각형 Clusters: 352,891 // 처리된 클러스터 Instances: 12,456 // 인스턴스 수 // 상세 통계 stat NaniteDetails // 시각화 모드 r.Nanite.Visualize.Triangles = 1 // 삼각형 밀도 r.Nanite.Visualize.Clusters = 1 // 클러스터 경계 r.Nanite.Visualize.Overdraw = 1 // 오버드로우 // 스트리밍 상태 stat NaniteStreaming
Nanite 병목 징후

높은 삼각형 수: MaxPixelsPerEdge 증가 필요
많은 클러스터: 인스턴스 수 과다, 거리 컬링 확인
스트리밍 지연: PoolSize 증가 필요

03

Lumen 프로파일링

Lumen 통계 명령어 // 기본 Lumen 통계 stat Lumen // 출력 정보: Screen Probes: 1024 Radiance Cache Probes: 8192 Surface Cache Updates: 45 // 상세 통계 stat LumenScene // 시각화 모드 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
Lumen 최적화 지표
  • Screen Traces > 2ms: 해상도 낮추기
  • Mesh SDF Tracing > 3ms: SDF 품질 감소
  • Surface Cache 누락 많음: Card 배치 확인
  • HWRT > 5ms: SWRT 전환 고려
04

VSM 프로파일링

VSM 통계 명령어 // 섀도우 렌더링 통계 stat ShadowRendering // 출력 정보: Physical Pages Used: 2456/4096 Cache Hit Rate: 87% Invalidations: 234 // VSM 시각화 r.Shadow.Virtual.Visualize = 1 // 페이지 할당 r.Shadow.Virtual.Visualize = 2 // 캐시 상태 // 캐싱 상태 확인 r.Shadow.Virtual.Cache.DrawInvalidatingBounds = 1 // SMRT 비용 stat SMRT
VSM 병목 징후

체커보드 패턴: 페이지 풀 부족 -> MaxPhysicalPages 증가
낮은 Cache Hit: 무효화 많음 -> WPO 확인
SMRT 비용 높음: 샘플 수 감소

05

통합 프로파일링 워크플로우

성능 분석 순서
1. stat fps
전체 성능
-> 2. ProfileGPU
GPU 병목 확인
-> 3. 개별 stat
상세 분석
-> 4. 최적화
설정 조정
종합 프로파일링 스크립트 // 모든 렌더링 통계 한번에 stat unit stat fps stat gpu // 시스템별 상세 stat Nanite stat Lumen stat ShadowRendering // GPU 프로파일러 ProfileGPU // 주요 확인 항목: // 1. Frame Time - 16.6ms (60fps) / 33.3ms (30fps) // 2. Game Thread - 게임 로직 비용 // 3. Draw Thread - 드로우 콜 비용 // 4. GPU Time - 렌더링 비용 // 상세 GPU 타이밍 // - BasePass: 지오메트리 렌더링 (Nanite 포함) // - Lumen: GI 및 반사 // - Shadow: VSM 렌더링 // - PostProcess: 후처리 효과
06

최적화 체크리스트

렌더링 최적화 체크리스트
  • Nanite
    • 모든 Static Mesh Nanite 활성화
    • MaxPixelsPerEdge 조정 (1.0~2.0)
    • 스트리밍 풀 크기 적절히 설정
  • Lumen
    • SWRT vs HWRT 선택 (하드웨어 기반)
    • Far Field 설정 (대규모 월드)
    • Radiance Cache 프로브 수 조정
  • VSM
    • 페이지 풀 크기 모니터링
    • WPO Disable Distance 설정
    • SMRT 샘플 수 조정
  • 공통
    • TSR/DLSS/FSR 활용
    • Async Compute 활성화
    • 플랫폼별 최적화 적용
SUMMARY

핵심 요약

  • stat + ProfileGPU로 병목 식별
  • 시각화 모드로 문제 영역 확인
  • 시스템별 stat으로 상세 분석
  • 체계적 워크플로우로 최적화 진행
PRACTICE

도전 과제

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

실습 1: 통합 프로파일링 워크플로우 실행

프로파일링 워크플로우를 순서대로 실행하세요: (1) stat unit으로 전체 확인, (2) ProfileGPU로 GPU 병목 식별, (3) stat Nanite/stat Lumen/stat ShadowRendering으로 상세 분석. 가장 큰 병목을 찾아 해결하세요.

실습 2: 시각화 모드 활용

Nanite(r.Nanite.Visualize.Overdraw = 1), Lumen(r.Lumen.Visualize.Mode = 1~4), VSM(r.Shadow.Virtual.Visualize = 1)의 시각화 모드를 모두 활용하여 씬의 렌더링 문제 영역을 파악하세요.

심화 과제

복잡한 오픈월드 씬에서 최적화 체크리스트를 처음부터 끝까지 적용하세요: Nanite 전환, Lumen 모드 선택, VSM 페이지 풀 조정, TSR/업스케일러 적용, Async Compute 활성화, 플랫폼별 분기 설정. Unreal Insights로 최적화 전후의 프레임 타임라인을 캡처하고 개선률을 정량적으로 문서화하세요.