UE5 Nanite 与传统渲染管线的深度源码对比

本文基于 UE 5.4/5.5 引擎源码,从源码层面深入对比 Nanite 渲染管线与传统网格渲染管线的差异。所有代码引用均标注了引擎内的原始路径。 1. 宏观架构概览 传统渲染管线和 Nanite 管线的最根本区别在于:几何处理的主导权从 CPU 转移到了 GPU,并且材质着色从 Pixel Shader 迁移到了 Compute Shader。 维度 传统渲染 (Traditional) Nanite 几何裁剪 CPU-driven Frustum/Occlusion Culling GPU-driven Cluster Culling + Two-Pass Occlusion LOD 离散 LOD (StaticMesh LOD0~N) 连续 LOD (Cluster Hierarchy, Runtime Streaming) 光栅化 硬件光栅化 (Fixed Function RS) 软件光栅化 (Compute) + 硬件光栅化 (Mesh/Prim Shader) 中间表示 无 (直接写 GBuffer/FrameBuffer) Visibility Buffer (VisBuffer64) 材质着色 Pixel Shader (BasePassPixelShader.usf) Compute Shader (ComputeShaderOutputCommon.ush) GBuffer 输出 SV_Target MRT UAV (ComputeShadingOutputs.OutTargetN) DrawCall FMeshDrawCommand (CPU 组装) Indirect Dispatch (GPU 驱动) 2. 渲染入口与调度 2.1 传统渲染的入口 传统渲染的顶层调度在 FDeferredShadingSceneRenderer::Render() 中,通过 RenderBasePass() 等函数发起。每个 FPrimitiveSceneProxy 会在 FMeshPassProcessor 中被转换为 FMeshDrawCommand,最终由 FParallelMeshDrawCommandPass 提交到 RHI。 ...

April 21, 2026 · 13 min · MrOptimist

Nanite VisBuffer 核心概念速查

Nanite VisBuffer 核心概念速查 Nanite 是 UE5 的虚拟化几何系统,其核心创新是用 Visibility Buffer(可见性缓冲) 替代传统 G-Buffer,将几何处理与材质着色完全解耦。本文梳理 VisBuffer 管线中涉及的关键概念。 VisBuffer 整体管线 Mesh → Instance → Cluster Group → Cluster → Triangle → VisBuffer → Material Pass Culling Pass(计算着色器):GPU 端逐 Cluster 做视锥/遮挡/屏幕尺寸剔除 Rasterization Pass:将可见像素写入 VisBuffer(仅存 ID,不做材质计算) Material Pass:全屏 Pass 读取 VisBuffer,解码 ID,仅对可见像素着色一次 来源:Brian Karis, “A Deep Dive into Nanite Virtualized Geometry”, SIGGRAPH 2021 (Advances in Real-Time Rendering) 三角形(Triangle) Cluster 内的基本渲染单元。每个 Cluster 包含最多 128 个三角形。在 VisBuffer 中,三角形 ID 占约 7 bit(2^7 = 128),用于在 Material Pass 中定位该三角形的三个顶点并做重心坐标插值。 ...

April 20, 2026 · 4 min · MrOptimist

Nanite: A Deep Dive

Nanite: A Deep Dive 来源: Karis_Nanite_SIGGRAPH_Advances_2021_final — Brian Karis, Rune Stubbe, Graham Wihlidal 会议: SIGGRAPH 2021 Advances in Real-Time Rendering in Games course 作者主讲: Brian Karis (Engineering Fellow, Epic Games) 主题: UE5 全新虚拟几何系统 Nanite 的深度技术解析 目录 愿景与现实 可选方案的探索 GPU Driven Pipeline 三角形 Cluster Culling 与 Occlusion Culling Visibility Buffer 与可见性/材质解耦 次线性扩展与 Cluster 层次结构 LOD 裂缝问题与 DAG 构建 构建流程详解(Build Operations) 简化算法与误差度量 运行时视相关 LOD 选择 并行 LOD 选择与层次裁剪 Persistent Threads 与两 Pass Occlusion Culling 光栅化(软件 + 硬件混合) 小三角形与微多边形软光栅器 小实例(Tiny Instances)与 Imposter 延迟材质求值(Deferred Material Evaluation) 流水线性能数据 阴影:Virtual Shadow Maps Streaming(几何流送) 压缩:内存表示与磁盘表示 结果与未来工作 致谢与参考文献 1. 愿景与现实 1.1 The Dream(梦想) 像 Virtual Texturing 那样虚拟化几何: ...

April 20, 2026 · 16 min · MrOptimist