콘텐츠로 이동

UE5 Nanite & Lumen 최적화 전략

UE5의 두 핵심 렌더링 기술인 NaniteLumen은 기존 워크플로를 크게 바꿉니다. Nanite는 폴리곤 예산 개념을 없애고, Lumen은 라이트맵 베이크를 대체합니다. 하지만 무조건 켠다고 성능이 보장되지 않으며 적절한 설정이 필요합니다.


Nanite는 메시를 LOD 없이 픽셀 단위로 필요한 디테일만 스트리밍합니다. 화면에서 1픽셀을 차지하는 삼각형은 1개의 삼각형으로 렌더링됩니다.

// C++에서 StaticMesh에 Nanite 설정
UStaticMesh* Mesh = ...;
Mesh->NaniteSettings.bEnabled = true;

에디터에서: StaticMesh 에디터 → Nanite Settings → Enable Nanite ✓

적합부적합
고폴리 배경 에셋스킨 메시 (캐릭터)
바위, 건물, 지형 디테일투명/마스크 머티리얼
정적 메시WorldPositionOffset 사용 메시
10만+ 폴리곤 메시빠르게 움직이는 작은 오브젝트
뷰포트 → Show → Visualize → Nanite
또는 콘솔: r.Nanite.Visualize overview

Lumen은 씬 SDF(Signed Distance Field)와 메시 카드를 이용해 실시간으로 간접광과 반사를 계산합니다. 라이트맵 UV나 베이크가 필요 없습니다.

Project Settings → Rendering:
- Dynamic Global Illumination Method: Lumen
- Reflection Method: Lumen
- Shadow Map Method: Virtual Shadow Maps
// PostProcessVolume 컴포넌트에서 설정
PostProcessSettings.LumenFinalGatherQuality = 4.0f; // 1~4
PostProcessSettings.LumenMaxTraceDistance = 20000.0f;
PostProcessSettings.LumenSceneViewDistance = 20000.0f;
PostProcessSettings.LumenSceneLightingQuality = 1.0f;

항목Software LumenHardware Ray Tracing Lumen
GPU 요구중간 (DX11급)높음 (RTX급)
정확도좋음매우 좋음
성능빠름느림
유리/거울 반사제한적완전 지원
Project Settings → Rendering → Ray Tracing → Enable Hardware Ray Tracing

Lumen과 함께 사용하는 고품질 동적 그림자:

Project Settings → Rendering → Shadows → Shadow Map Method: Virtual Shadow Maps

콘솔 명령으로 디버그:

r.Shadow.Virtual.ShowStats 1
r.Shadow.Virtual.Cache 1 // 캐시 활성화 (성능 향상)

; Engine.ini 또는 콘솔
; Lumen 품질 조정
r.Lumen.Reflections.Allow 1
r.Lumen.DiffuseIndirect.Allow 1
r.Lumen.SceneLightingQuality 0.5 ; 0.25~1 (낮을수록 빠름)
r.Lumen.FinalGather.Quality 0.5
; Nanite 설정
r.Nanite.MaxPixelsPerEdge 1.0 ; 낮을수록 고품질 (기본 1.0)
r.Nanite.Streaming.BudgetMB 512 ; VRAM 예산
; VSM
r.Shadow.Virtual.ResolutionLodBiasDirectional -0.5 ; 품질 향상

// 낮은 사양 플랫폼 감지 후 폴백
if (!GRHISupportsRayTracing)
{
// Lumen Software 모드로 폴백
IConsoleManager::Get().FindConsoleVariable(
TEXT("r.RayTracing.Enable"))->Set(0);
}

콘솔/모바일에서는 Lumen 대신 Screen Space Global Illumination(SSGI) 또는 라이트맵으로 폴백을 고려하세요.


// 렌더링 통계
Stat GPU
Stat RHI
// Nanite 통계
r.Nanite.ShowStats 1
// Lumen 시각화
r.Lumen.Visualize.Overview 1

Nanite는 정적 고폴리 메시에 무조건 적용하되 스킨 메시와 특수 머티리얼은 제외하세요. Lumen은 동적 조명이 필요한 씬에서 라이트맵을 대체하지만 SceneLightingQualityFinalGather.Quality를 타겟 플랫폼 성능에 맞게 조정해야 합니다. VSM과 함께 사용하면 그림자 품질도 크게 향상됩니다.