UE 知识卡片Nanite PipelineDebug

Nanite:从导入到像素

Clustering → Culling → Streaming → Soft Raster → Shade:整条路径,以及什么时候不该用 Nanite。

Question

详细解释 Nanite 从导入到最终像素的处理;聚焦 clustering、culling、on-demand streaming。讨论 Nanite 不是最佳解的场景与根因,以及如何调试性能/伪影。

管线一览

1. Ingest高模 → 分层 Cluster 树 + 压缩
2. Cull簇级视锥/遮挡/屏幕贡献剔除
3. Stream按需从盘流送可见簇(偏爱 SSD)
4. Raster+Shade软件光栅 → 材质 ID → 按材质着色
  1. 数据摄取:静态网格转内部格式,生成多分辨率 Cluster 树,自动连续 LOD。
  2. 剔除:在极细粒度上丢弃被遮挡、出屏、或当前分辨率不可感知的簇。
  3. 按需流送:只把当前视图需要的簇装入内存,降低常驻占用。
  4. 软件光栅化:产出紧凑深度缓冲 + 材质 ID;亚像素级解析可见性。
  5. 着色:通常按材质发 draw;着色成本与几何复杂度解耦。

什么时候不该用

场景根因
半透明 / 难搞的 Masked深度优先 + 紧凑可见性表示与排序/discard 冲突
骨骼 / 布料 / 流体等变形预计算簇与剔除每帧失效,重算吞掉优势
极薄/聚合几何(发丝、碎叶)微簇管理开销 > 收益,overdraw / 闪烁风险高
运行时细分/置换与预处理虚拟化数据结构冲突
极简低模Nanite 基线开销可能高于传统路径

调试清单

工具看什么
r.Nanite.Visualize总览 Nanite 行为
r.Nanite.Visualize.Clusters簇划分是否合理(薄几何尤其)
r.Nanite.Visualize.Overdraw同像素多次绘制热点
r.Nanite.Visualize.PageStreaming流送瓶颈
stat GPU / InsightsNanite.Raster / Nanite.Render 计时
材质提醒:Masked、WPO、PDO 在 Nanite 上可能特别贵。植被/头发若 Nanite 吃力,考虑实例化静态网格 + LOD 或专用路径。