UE5 렌더링 파이프라인
Unreal Engine 5는 Nanite(가상화 마이크로폴리곤)와 Lumen(완전 동적 글로벌 일루미네이션)을 중심으로 렌더링 파이프라인을 전면 재설계했습니다.
렌더 패스 구조 개요
Section titled “렌더 패스 구조 개요”UE5의 프레임 렌더링은 크게 다음 단계로 진행됩니다.
PrePass (Depth Prepass) └─ Nanite RasterizationBasePass (GBuffer 기록) └─ Deferred ShadingLighting Pass └─ Lumen (GI + Reflection)Translucency PassPost Processing └─ TAA / TSR, Bloom, Tone MappingNanite
Section titled “Nanite”Nanite는 폴리곤 수에 관계없이 화면 픽셀 해상도에 맞게 자동으로 LOD를 처리하는 가상화 지오메트리 시스템입니다.
- 메시를 클러스터(128 트라이앵글 단위)로 분할
- 카메라 거리·화면 크기에 따라 클러스터 단위로 컬링·레스터화
- GPU 기반 소프트웨어 래스터라이저로 매우 작은 트라이앵글 처리
활성화 조건
Section titled “활성화 조건”// StaticMesh 에셋 → Details → Nanite Settings → Enable Nanite Support 체크// 또는 C++에서UStaticMesh* Mesh = ...;Mesh->NaniteSettings.bEnabled = true;Nanite 제약사항
Section titled “Nanite 제약사항”| 항목 | 지원 여부 |
|---|---|
| Deferred Shading | ✅ |
| 월드 포지션 오프셋(WPO) | ✅ (UE 5.1+) |
| 스켈레탈 메시 | ❌ |
| 반투명 머티리얼 | ❌ |
| 커스텀 뎁스 | 제한적 |
Lumen은 레이 트레이싱 전용 하드웨어 없이 소프트웨어 레이 트레이싱으로 완전 동적 GI와 반사를 구현합니다.
두 가지 레이 트레이싱 모드
Section titled “두 가지 레이 트레이싱 모드”| 모드 | 특징 | 권장 플랫폼 |
|---|---|---|
| Software Ray Tracing | Mesh Distance Field 기반 | 콘솔·중간 사양 PC |
| Hardware Ray Tracing | RT 코어 활용, 고품질 | 고사양 PC |
C++에서 Lumen 설정
Section titled “C++에서 Lumen 설정”// 런타임에 Lumen GI 품질 조정static IConsoleVariable* CVarLumenQuality = IConsoleManager::Get().FindConsoleVariable(TEXT("r.Lumen.DiffuseIndirect.Allow"));
if (CVarLumenQuality) CVarLumenQuality->Set(1); // 0: 비활성, 1: 활성PostProcessVolume을 통한 품질 제어
Section titled “PostProcessVolume을 통한 품질 제어”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.0Deferred Shading & GBuffer
Section titled “Deferred Shading & GBuffer”UE5는 기본적으로 Deferred Shading을 사용합니다. BasePass에서 GBuffer에 씬 정보를 기록하고, Lighting Pass에서 조명을 계산합니다.
| GBuffer 채널 | 내용 |
|---|---|
| A | World Normal |
| B | Metallic·Specular·Roughness |
| C | Base Color |
| D | 커스텀 데이터 (서브서피스 등) |
TSR (Temporal Super Resolution)
Section titled “TSR (Temporal Super Resolution)”UE5에서 TAA를 대체하는 업스케일링 기술입니다. 저해상도로 렌더링 후 고해상도로 복원해 성능을 절약합니다.
; DefaultEngine.ini[/Script/Engine.RendererSettings]r.AntiAliasingMethod=4 ; 4 = TSRr.ScreenPercentage=67 ; 67% 해상도로 렌더 후 업스케일GPU Visualizer : Ctrl+Shift+, → 패스별 GPU 시간 확인RenderDoc : 외부 프레임 캡처 도구stat GPU : 콘솔 명령어로 GPU 통계 출력r.Nanite.Visualize cluster : Nanite 클러스터 시각화