在场景中处理包含多个细节丰富、网格体密度大的3D模型时,可能会出现性能卡顿。 你可以使用Twinmotion中的Nanite系统来解决此问题。 Nanite是虚幻引擎的虚拟化几何体系统,旨在优化性能并保持性能流畅,尤其是在处理包含多个复杂3D模型的场景时,复杂是指模型包含多个部件且三角形数量较多,例如高质量的摄影测量扫描。
3D模型由若干三角多边形(即三角形)组成。 Nanite会根据对象在场景中占用的屏幕空间大小,实时动态优化三角形数量,从而降低3D模型的内存占用和磁盘空间占用。
当对象距离视口摄像机较远且在屏幕上占用空间较少时,Nanite会动态地减少该对象的三角形数量。 这简化了对象的复杂度,仅加载和渲染可见的细节。
当对象距离视口摄像机较近且在屏幕上占用空间较多时,Nanite会增加该对象的三角形数量,从而使更多细节变得可见。
建议为细节丰富且网格体密度极大的对象使用Nanite。 如果对象符合以下条件,则适合使用Nanite:
包含大量三角形,或屏幕上的三角形非常小。
在场景中拥有大量实例。
是场景中其他Nanite几何体的主要遮挡物。
使用精准(Accurate)阴影映射选项投射阴影。
阴影映射选项由环境光(Ambience)面板的渲染(Render) > 阴影(Shadows)定义。
如果能提高帧率,那么使用Nanite就是有效的。 使用统计数据(Statistics)面板即可监控帧率并查看其他性能数据。
Nanite的优势
实时处理数量更多且极其复杂的几何图形,支持的三角形数量远超以往水平。
图形处理器(GPU)帧渲染不再受限于3D模型多边形数量、对显卡的绘制调用以及网格体内存用量。
可导入电影级品质的美术资源,例如ZBrush雕刻模型和摄影测量扫描数据。
使用高模数量实现细节,而非将细节烘焙到法线贴图纹理中。
自动处理细节级别(LOD),无需手动设置单个网格体的LOD。
几乎不存在画质损失,实现平滑的LOD过渡。
Nanite支持
你可以为以下类型的资产启用Nanite:
所有通过几何体(Geometry)选项卡或Datasmith Direct Link工作流程导入到Twinmotion中的静态支持几何体。
从Twinmotion的Sketchfab库下载并添加到场景中的所有静态3D模型。
Quixel Megascans库3D资产类别和3D植物类别中的资产。
Nanite不支持以下类型的资产:
库中的Twinmotion和Quixel Megascans资产。
导入的动画文件和来自于Sketchfab库的动画文件。
表面(Surfaces)和贴花(Decals)类别下的Quixel Megascans资产
启用Nanite
启用Nanite的方法如下:
在将几何体导入到Twinmotion中时,使用导入选项启用。
针对场景中的对象,使用场景图表或属性(Properties)面板。
在导入时启用Nanite
要在将几何体导入到Twinmotion中时启用Nanite,请执行以下操作:
使用导入几何体工作流程或Datasmith Direct Link工作流程将几何体导入到Twinmotion中。
进入导入(Import)窗口后,请执行以下操作:
确保选择保持层级(Keep Hierarchy)折叠模式。
勾选启用Nanite(Enable Nanite)复选框。
点击导入(Import)。
若导入时启用了Nanite,Twinmotion偏好设置(Twinmotion Preferences)面板中定义的Nanite设置将决定Nanite针对几何体的启用方式。 你可以在导入内容后重载这些设置。 如需更多信息,请参阅下文的Nanite设置。
为场景中的对象启用Nanite
如果场景中的对象未启用Nanite,你可以在属性(Properties)面板或场景图表(Scene Graph)菜单中将其启用。
属性(Properties)面板:如果你只想为单个对象启用Nanite,或者为场景图表容器内的若干项目启用Nanite,请使用此方法。
场景图表(Scene Graph)菜单:如果场景图表中的几何体在一个或多个容器内被划分为多个部件,请使用此方法。 Nanite会对父容器内的所有部件以及任何子容器内的所有部件启用。
要从属性(Properties)面板启用Nanite,请执行以下操作:
选择视口或场景图表中的几何体。
在场景图表中,如果几何体在一个或多个容器内被分割成多个部件,请仅选择容器内的部件。 选择容器则无法启用Nanite。
转到属性(Properties)面板,点击Nanite以展开分段。
(可选)修改Nanite设置。 如需详细了解相关设置,请参阅下文的Nanite设置小节。
勾选启用(Enable)复选框并点击 应用(Apply)按钮。
要从场景图表启用Nanite,请执行以下操作:
转到场景图表,选择父项容器。
在菜单中右键点击容器并选择全部转换为Nanite(Convert all to Nanite)。
Nanite会在父容器和任何子容器内的所有部件上均启用。
Nanite三角形视口模式
Twinmotion提供了多种可视化模式,可用于从不同方面检查场景。 其中包括Nanite三角形视图模式,可用于查看并检查Nanite几何体上的三角形。
在Nanite三角形视图模式下,你可以同时查看场景中所有几何体上的三角形。 你可以这种方法高效地验证是否已启用Nanite。
要访问Nanite三角形视图模式,请点击视口右上角的视图模式图标,然后在菜单中选择Nanite三角形(Nanite Triangles)。
Nanite设置
下表列出了Nanite系统的设置项。 在视口或场景图表中选择几何体后,即可在其属性(Properties)面板中查看相关设置。
| 设置项 | 说明 |
|---|---|
启用(Enable) | 选中后,将为场景中被选中的对象启用Nanite。 |
自动(Auto) | 选中后,系统会根据几何体的大小自动计算生成几何体顶点位置所需的适当精度。 为提高精度或优化磁盘占用,你可以取消选择自动选项,并在精度(Precision)字段中选择一个值来重载此项。 自动(Auto)为默认的所选项。 |
精度(Precision) | 如果取消选择自动(Auto),则此选项将决定生成几何体顶点位置所用的精度。 选项(Options): 0.00122毫米至64厘米 默认项为10毫米。 |
保留区域(Preserve Area) | 选中后,Nanite网格体三角形上的所有开放边界边都会被扩展。 启用Nanite后,由于简化效果,网格体可能会丢失表面积,并产生具有开放边界边的三角形。 此选项对植被(例如茂密森林中的树木群)尤其适用,因为每片叶子的尺寸都会变大,从而防止远处树冠变得稀疏。 几何条带(例如草叶)则会被加厚。 建议仅为植被网格体启用此选项。 |
应用(Apply) | 点击应用(Apply)即可应用所做的设置更改。 |
修改Nanite设置
若导入时启用了Nanite,或使用了场景图表中的全部转换为Nanite(Convert all to Nanite)命令,则Twinmotion偏好设置(Preferences)面板中定义的Nanite设置将决定对几何体启用Nanite的方式。 你可以在启用Nanite后重载这些设置,并将其应用于Nanite几何体。
要修改Nanite设置,请执行以下操作:
选择视口或场景图表中的对象。
在场景图表中,如果几何体在一个或多个容器内被分割成多个部件,请仅选择容器内的部件。 选中容器后,Nanite设置不可见。
在属性(Properties)面板中修改Nanite设置。
点击应用(Apply)按钮。
限制
Nanite存在若干限制。 这些限制可能会发生变化,但目前的限制包括:
macOS支持Nanite,但仅限使用M2或更高级芯片的设备。
Nanite只能对静态几何体启用。
以下项目无法启用Nanite:
动画文件。
库中的Twinmotion和Quixel Megascans资产。
拥有半透明材质的对象,例如玻璃。
要让Nanite有效,几何体的拓扑结构必须遵循以下规范:
网格体不得包含非流形边、孔洞或内部面。
网格体不得过小或过大。
网格体需保持结构一致且分布均匀。