Unity3D :草和其他细节

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生
草和其他细节
地形可能有草块和其他小物体(如岩石)覆盖其表面。Unity 使用带纹理的四边形或完整网格体渲染这些对象,具体取决于您需要的细节级别和性能。
在 2021.2 之前,草地和其他细节仅适用于内置渲染管线和通用渲染管线 (URP)。在 2021.2 中,Unity 引入了适用于所有渲染管线(包括高清渲染管线 (HDRP))的实例化细节。

地形细节在多种模式中可用,其中每种模式在游戏开发过程中都有不同的用途。
模式 | 描述 |
---|---|
实例化网格 | Unity 建议您使用此模式,因为它最适合需要在地形上放置任意数量的网格的大多数场景。 要添加实例化网格,请选择添加细节网格并启用使用 GPU 实例化选项。 |
顶点光照网格 | 不使用 GPU 实例化进行渲染。相反,它将所有细节实例合并到一个网格中,这会导致简单的着色和对可以实现的实例数量的限制。 要添加顶点光照网格,请选择添加细节网格并将渲染模式设置为顶点光照。 |
草网 | 其工作原理与顶点列表网格体类似,但 Unity 将这些网格体视为草,因此它们始终具有朝上的法线并在风中移动。 要添加草地网格体,请选择添加细节网格体并将渲染模式设置为草地。 |
草纹理 | 允许您直接从纹理创建草四边形网格体,这些网格体在风中移动。您无需指定任何自定义网格,还可以启用一个选项,使草地四边形始终面向摄像机以获得广告牌效果。 为此选项选择添加草纹理。 |
油漆细节
要启用草地和细节绘制,请选择地形检查器工具栏上的“绘制细节”按钮。

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

使用“详细信息预制件”字段从项目中选择一个预制件。为了创建真实的外观,每个网格都受到随机因素的影响,以确定大小和颜色。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 实例化”,“渲染模式”设置将灰显且不可用。
添加草纹理

“添加草纹理”窗口
细节纹理是代表草的纹理。您可以从资源商店下载纹理,也可以创建自己的纹理。纹理是空白区域的 alpha 设置为零的小图像。请注意,“草”是一个通用术语;纹理可以表示花朵或人造物体,例如带刺铁丝网线圈。
“最小宽度”、“最大宽度”、“最小高度”、“最大高度”、“杂色种子”、“杂色扩散”、“孔边填充 (%)”、“健康颜色”和“干色”设置的工作方式与网格相同,如上面的“添加细节网格”部分所述。
最后,当您启用“广告牌”选项时,草地图像将旋转,以便它们始终面向摄像机。当您想要显示茂密的草地时,这很有用,因为团块是二维的,从侧面不可见。然而,对于稀疏的草,单个团块的旋转可能会对观众变得明显,从而产生奇怪的效果。
移除详细信息
若要删除详细信息,请选择要删除的详细信息,单击“编辑详细信息”按钮,然后选择“删除”。删除细节时,Unity 会清除表示分散该细节的地形区域的数据。
由3D建模学习工作室整理翻译,转载请注明出处!