Unity3D :草和其他细节

Unity3D :草和其他细节
推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

草和其他细节

地形可能有草块和其他小物体(如岩石)覆盖其表面。Unity 使用带纹理的四边形或完整网格体渲染这些对象,具体取决于您需要的细节级别和性能。

在 2021.2 之前,草地和其他细节仅适用于内置渲染管线和通用渲染管线 (URP)。在 2021.2 中,Unity 引入了适用于所有渲染管线(包括高清渲染管线 (HDRP))的实例化细节。

有草的地形
有草的地形

地形细节在多种模式中可用,其中每种模式在游戏开发过程中都有不同的用途。

模式描述
实例化网格Unity 建议您使用此模式,因为它最适合需要在地形上放置任意数量的网格的大多数场景。

要添加实例化网格,请选择添加细节网格并启用使用 GPU 实例化选项。
顶点光照网格不使用 GPU 实例化进行渲染。相反,它将所有细节实例合并到一个网格中,这会导致简单的着色和对可以实现的实例数量的限制。

要添加顶点光照网格,请选择添加细节网格并将渲染模式设置为顶点光照
草网其工作原理与顶点列表网格体类似,但 Unity 将这些网格体视为草,因此它们始终具有朝上的法线并在风中移动。

要添加草地网格体,请选择添加细节网格体并将渲染模式设置为地。
草纹理允许您直接从纹理创建草四边形网格体,这些网格体在风中移动。您无需指定任何自定义网格,还可以启用一个选项,使草地四边形始终面向摄像机以获得广告牌效果。

为此选项选择添加草纹理

油漆细节

要启用草地和细节绘制,请选择地形检查器工具栏上的“绘制细节”按钮。

Terrain Inspector 中的 Paint Details 按钮
Terrain Inspector 中的 Paint Details 按钮

最初,地形没有草或细节可用。在检查器中,点按“编辑细节”按钮以显示包含“添加细节网格”和“添加草纹理”选项的菜单。单击任一选项以打开一个窗口,您可以在其中选择要添加到地形中进行绘画的资产。

添加细节网格

Add Detail Mesh 窗口
Add Detail Mesh 窗口

使用“详细信息预制件”字段从项目中选择一个预制件。为了创建真实的外观,每个网格都受到随机因素的影响,以确定大小和颜色。Unity 使用柏林噪声算法来生成此类随机因子。

最小宽度、最大宽度最小高度和最大高度值指定沿随机生成网格的 X 轴和 Y 轴的上下缩放比例。

“噪声种子”设置设置随机数生成器种子。每个种子值代表一个唯一的生成。如果为两种类型的详细信息设置相同的种子,则生成的实例将变得相同。噪声扩散值是指噪声模式在 X-Z 平面上的缩放,值越高表示给定区域内的变化越多。

“孔边填充 (%)”设置控制细节对象与孔区域边缘的距离。有关更多信息,请参阅 DetailPrototype.holeEdgePadding。

“健康颜色”和“干色”设置控制颜色变化。Unity 在健康颜色和干色之间执行线性插值,并根据网格的大小选择颜色。例如,系统认为较大尺寸的网格更健康,因此此类网格的线性插值结果更倾向于健康颜色色调。选择“使用 GPU 实例化”时,这些颜色设置将消失,因为它们对实例化网格没有影响。

您可以将渲染模式设置为顶点光照草地

渲染模式描述
顶点照明将细节网格渲染为场景中的实心顶点照明游戏对象,这些游戏对象不会随风移动。
使用类似于草纹理的简化照明渲染场景中的细节网格,并在风中移动。

使用 GPU 实例化

此外,还可以指定是否要使用 GPU 实例化来渲染细节网格。通过 GPU 实例化,Unity 使用预制件上指定的材质和着色器进行渲染。这使您可以在着色器中执行更多自定义,并可能使用着色器图。

Unity 仍会将宽度和高度噪点应用于每个实例,但禁用健康颜色/干色噪点。您可以在着色器中使用自己的颜色变化技术以及许多其他随机化。

在后台,一些 Unity GPU 实例化限制确实会影响渲染。例如:

  • 您的目标平台需要支持 GPU 实例化。
  • 着色器必须支持 GPU 实例化。(大多数着色器都支持它。
  • 对象以 1,023 个或更少的批次呈现。
  • 不支持实例化光照探针光照或光照贴图光照。

与 Unity 每帧动态构建实例化常量缓冲区的常规实例化不同,实例化细节具有持久的常量缓冲区,以便在目标硬件允许时获得更好的 CPU 和 GPU 性能,但代价是 GPU 内存使用量适度增加。

如果选择“使用 GPU 实例化”,“渲染模式”设置将灰显且不可用。

添加草纹理

Add Grass Texture 窗口
Add Grass Texture 窗口

“添加草纹理”窗口

细节纹理是代表草的纹理。您可以从资源商店下载纹理,也可以创建自己的纹理。纹理是空白区域的 alpha 设置为零的小图像。请注意,“草”是一个通用术语;纹理可以表示花朵或人造物体,例如带刺铁丝网线圈。

“最小宽度”、“最大宽度”、“最小高度”、“最大高度”、“杂色种子”、“杂色扩散”、“孔边填充 (%)”、“健康颜色”和“干”设置的工作方式与网格相同,如上面的添加细节网格”部分所述。

最后,当您启用“广告牌”选项时,草地图像将旋转,以便它们始终面向摄像机。当您想要显示茂密的草地时,这很有用,因为团块是二维的,从侧面不可见。然而,对于稀疏的草,单个团块的旋转可能会对观众变得明显,从而产生奇怪的效果。

移除详细信息

若要删除详细信息,请选择要删除的详细信息,单击“编辑详细信息”按钮,然后选择“删除”。删除细节时,Unity 会清除表示分散该细节的地形区域的数据。

3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D :风区(Wind Zones) (mvrlink.com)

下一篇:Unity3D :使用高度贴图 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号