Skip to content

UE5 렌더링 파이프라인

Unreal Engine 5는 Nanite(가상화 마이크로폴리곤)와 Lumen(완전 동적 글로벌 일루미네이션)을 중심으로 렌더링 파이프라인을 전면 재설계했습니다.


UE5의 프레임 렌더링은 크게 다음 단계로 진행됩니다.

PrePass (Depth Prepass)
└─ Nanite Rasterization
BasePass (GBuffer 기록)
└─ Deferred Shading
Lighting Pass
└─ Lumen (GI + Reflection)
Translucency Pass
Post Processing
└─ TAA / TSR, Bloom, Tone Mapping

Nanite는 폴리곤 수에 관계없이 화면 픽셀 해상도에 맞게 자동으로 LOD를 처리하는 가상화 지오메트리 시스템입니다.

  • 메시를 클러스터(128 트라이앵글 단위)로 분할
  • 카메라 거리·화면 크기에 따라 클러스터 단위로 컬링·레스터화
  • GPU 기반 소프트웨어 래스터라이저로 매우 작은 트라이앵글 처리
// StaticMesh 에셋 → Details → Nanite Settings → Enable Nanite Support 체크
// 또는 C++에서
UStaticMesh* Mesh = ...;
Mesh->NaniteSettings.bEnabled = true;
항목지원 여부
Deferred Shading
월드 포지션 오프셋(WPO)✅ (UE 5.1+)
스켈레탈 메시
반투명 머티리얼
커스텀 뎁스제한적

Lumen은 레이 트레이싱 전용 하드웨어 없이 소프트웨어 레이 트레이싱으로 완전 동적 GI와 반사를 구현합니다.

모드특징권장 플랫폼
Software Ray TracingMesh Distance Field 기반콘솔·중간 사양 PC
Hardware Ray TracingRT 코어 활용, 고품질고사양 PC
// 런타임에 Lumen GI 품질 조정
static IConsoleVariable* CVarLumenQuality =
IConsoleManager::Get().FindConsoleVariable(TEXT("r.Lumen.DiffuseIndirect.Allow"));
if (CVarLumenQuality)
CVarLumenQuality->Set(1); // 0: 비활성, 1: 활성
APostProcessVolume* PPV = ...;
PPV->Settings.bOverride_DynamicGlobalIlluminationMethod = true;
PPV->Settings.DynamicGlobalIlluminationMethod = EDynamicGlobalIlluminationMethod::Lumen;
PPV->Settings.bOverride_LumenSceneLightingQuality = true;
PPV->Settings.LumenSceneLightingQuality = 1.0f; // 0.25 ~ 4.0

UE5는 기본적으로 Deferred Shading을 사용합니다. BasePass에서 GBuffer에 씬 정보를 기록하고, Lighting Pass에서 조명을 계산합니다.

GBuffer 채널내용
AWorld Normal
BMetallic·Specular·Roughness
CBase Color
D커스텀 데이터 (서브서피스 등)

UE5에서 TAA를 대체하는 업스케일링 기술입니다. 저해상도로 렌더링 후 고해상도로 복원해 성능을 절약합니다.

; DefaultEngine.ini
[/Script/Engine.RendererSettings]
r.AntiAliasingMethod=4 ; 4 = TSR
r.ScreenPercentage=67 ; 67% 해상도로 렌더 후 업스케일

GPU Visualizer : Ctrl+Shift+, → 패스별 GPU 시간 확인
RenderDoc : 외부 프레임 캡처 도구
stat GPU : 콘솔 명령어로 GPU 통계 출력
r.Nanite.Visualize cluster : Nanite 클러스터 시각화