Home
avatar

lnblxj

Nanite

当Unreal Engine 5发布时,引入了一项名为Nanite的新特性,你可能想知道它究竟是什么?本文将介绍Nanite的核心知识、使用时机、优势及局限性。

Nanite- Unreal Engine

Nanite是Unreal Engine 5的一部分,采用创新的虚拟化几何体方法。它通过新的内部网格结构和渲染技术,在像素级别呈现复杂细节并高效处理大量对象。它将处理能力集中在可分辨的细节上,通过避免不必要的工作来优化性能。

目录

  • 如何启用Nanite
  • 什么是Nanite?
  • Nanite的优势是什么?
  • Nanite的局限性是什么?
  • 何时应使用Nanite?

如何启用Nanite

首先,在进行任何操作前需要了解如何在Unreal Engine中启用Nanite,这非常简单。

有两种方式可以实现:

方法A

导入静态网格到Unreal Engine时,勾选构建Nanite选项,这将自动使网格变为Nanite网格。

在导入时启用Nanite - Unreal Engine

方法B

若已有静态网格,打开后进入Nanite设置,勾选启用Nanite支持,点击应用更改。

若想停止使用Nanite,只需取消勾选该选项并点击应用更改。

启用Nanite - Unreal Engine

什么是Nanite

Nanite是一种高效渲染屏幕对象的方法。其工作原理是将网格拆分为三角形簇

若将Nanite网格拖入场景,在视口标签选择Lit > Nanite可视化(显示所有Nanite视图模式)。选择**> 簇**模式,可见Nanite如何将网格拆分为三角形簇。

Nanite视图模式 - Unreal Engine

可见Nanite模型被拆分为多种颜色,每种颜色代表一个簇。簇会根据屏幕尺寸、相机距离和分辨率调整。当簇不可见时会被剔除(减少或移除),使Nanite网格具备多级LOD。放大时显示多个簇,远离时则合并为更大的簇,显著优化网格性能。

Nanite的优势

  • 直接导入高质量模型:无需担心性能影响即可使用照片级扫描和高面数模型,Nanite可处理数百万多边形
  • 自动计算LOD:无需手动创建多级LOD。
  • 无需烘焙法线贴图:可直接导入高精度模型节省时间。
  • 套件拼接更便捷:传统方法因加载多模型导致性能下降,Nanite显著改善此问题。
  • 高效压缩:Nanite网格占用更少内存。相同面数下,Nanite网格体积小约7倍

Nanite网格细节对比

Nanite的局限性

  • 不适用于Aggregate Geometry(聚合几何体):如头发、树叶、草地。Unreal Engine 5.1起支持植被,未来可能扩展。

Unreal Engine中的头发

  • 不适用于紧密堆叠表面:当网格紧密堆叠时,Nanite可能无法准确判断上下关系,导致双重绘制(overdraw)。

堆叠的Nanite网格

Nanite不支持:

  • 变形/骨骼网格(Deforming/skeletal meshes)
  • 样条网格(Splines Meshes)

何时使用Nanite

建议尽可能使用Nanite以获得更佳性能、内存管理和磁盘空间节省。

Unreal Engine文档推荐使用场景:

  • 网格包含大量三角形或三角形在屏幕上极小
  • 场景中存在大量网格实例
  • 网格作为主要遮挡物(如巨型悬崖面)
Nanite 渲染