程序化散布

Dash 包含各种散布工具,每种工具都针对特定用途。在本页中我们将解释为什么这些散布工具是 Dash 中最常用的。

表面散布是一个世界级的散布解决方案,作用于您的网格表面。 其思路是给它一些几何体(静态网格、地形、程序化网格等...)作为要散布的表面/地面,以及一些您想要散布的演员(actors),它就会施展魔法。

这是 Dash 中最全面的工具,包含来自多个大型 AAA 工作室、优秀的单体艺术家提出的功能需求,以及我们团队对最先进场景构建的不懈追求。

circle-info

请务必阅读 入门指南 页面,以便更容易理解本页的信息。关于 环境创建 的章节涵盖了使用 Dash 工具的基础,本文将假定您已了解如何使用这些工具。

除了为特定用例提供易于使用的专用散布工具外,人们喜爱我们散布工具的主要原因在于它们的掩膜功能。大多数工具共享一些基本的掩膜设置,但表面散布几乎包含了所有功能,所以我们逐一介绍它们!

掩膜功能

Dash 的散布工具包含多种掩膜功能,虽然大部分位于表面散布中,其它工具仍有一些,我们也在积极向它们扩展掩膜功能。 让我们来看看所有主要的掩膜功能、它们如何工作以及您可以用它们做什么。

在深入之前,这里的“掩膜”指的是移除被散布的实例。此外,大多数掩膜组都允许您反转掩膜结果。您会注意到某些属性在右下角有一个小黑圈,表示您可以右键单击该属性并选择 反转掩膜.

接近掩膜

此功能允许您按曲线、网格和实例进行掩膜。

它有一个 距离 属性用于控制接近距离,并依赖于原生 UE 单位。 另一个属性是 采样。该值控制掩膜的质量。值越高表示质量越高,值越低表示质量越低。

在上例中,我们使用网格和曲线进行掩膜,但依赖实例同样简单:在视口中选择它们,然后将它们添加到接近对象中。 在下例中,我们先散布了一些球体,然后散布了一些圆盘,仅保留靠近球体的圆盘。

您可以利用接近掩膜来构建逼真的森林。首先,您会散布树木,然后在它们下方保留一些蕨类和落叶,接着在需要路径时使用曲线作为接近掩膜,然后在路径边缘散布一些岩石,等等……

从 Dash 1.8.5 起,表面散布具备通过接近表格添加无限数量接近掩膜的能力。这替代了之前的 3 个接近掩膜。在接近表格中,您可以创建组,每组都有自己的对象、距离和宽度值。例如,您可以使用第一组以特定距离掩膜一些对象,然后对其他两组做相同设置。

最后,接近掩膜非常适合进行掩膜反转。

角度掩膜

角度掩膜相当直接:它依赖于底层表面来确定角度,并移除该区域内的任何散布对象。当在山地上进行散布时,这对于保持坡面无树木或其他物体非常理想。

高度掩膜

像表面散布这样的工具有 最小高度掩膜 Python Script Plugin 最大高度掩膜 属性,允许您从上方或下方裁剪散布对象。

对象掩膜

不同于仅依赖距离的接近掩膜,对象掩膜使用光线追踪来判断您的实例是在对象内、外还是附近。如果您想绘制一条曲线并让所有实例都保留在该曲线内,此功能非常适合。您也可以用它来保留位于网格或体积内部/外部的实例。

此掩膜方法还有一个 保留内部 布尔属性,您可以切换它以确保掩膜要么保留实例在输入对象内部,要么在外部。您也可以使用 距离 属性来保留附近的实例。

噪声掩膜

噪声掩膜允许您快速打破散布对象的均匀性。 您可以使用一系列参数,从缩放到频率、轴向拉伸、噪声平滑、扭曲等……

如果您在散布草地、树木甚至垃圾,我们强烈建议使用此功能以使结果看起来更自然。

聚簇掩膜

聚簇掩膜通过随机选择实例并将它们用作聚簇的中心点来工作。 您可以调整用于采样实例密度的值,以及控制聚簇半径的另一个值。 结合噪声和其他掩膜,这可以成为用于逼真散布设置的强大工具。

边界掩膜

边界掩膜检测表面几何的边界边,并掩蔽所有靠近这些边界的对象。

此功能对于人为构建的散布设置(如花园)非常有用,您可以制作一些底层几何形状,在其上散布一些植物,然后隐藏该几何体。 几何体上的每个边环边界都被单独处理, 边界最小/最大 属性允许您为每个边界环的掩膜添加一些随机性。 噪声是一个简单的噪声效果,用于打破边界的均匀性。

投射掩膜

投射掩膜的工作方式是让每个实例的点向上发射一条射线,任何被其击中的并且您已添加到掩膜中的网格都会确保该射线击中的实例被保留。您也可以反转该效果。 用例包括保留位于物体下方的实例(如汽车下的植物或垃圾),以及移除场景中位于任何指定物体下方的所有实例。

地形图层掩膜

此掩膜功能允许您将绘制图层的名称输入给表面散布,工具随后使用该图层作为掩膜。您最多可以提供三层。

贴图掩膜

贴图掩膜相当直接:在 UE 的内容浏览器中选择一张贴图,将其传入 贴图路径 属性在贴图掩膜组中,完成。 您可以选择使用哪个通道作为掩膜,调整颜色阈值以帮助处理渐变像素,并平铺贴图掩膜。 您只需确保贴图包含黑底白字像素,白色像素将被用作掩膜。 如果您想创建具有非常特定形状的小型装饰花园之类的结构,我们建议采用这种方法:在一个平面上进行散布,隐藏该平面,然后给它代表花园形状的贴图。

顶点颜色掩膜

顶点颜色可以应用于静态网格,随后此掩膜组可用所有 RGB 通道。此外,您还有一些像素阈值控制来调整掩膜在渐变像素上的行为,还有一个 混合模式 下拉菜单,您可以从中选择顶点颜色如何影响掩膜逻辑。

方向掩膜

与角度掩膜不同,方向掩膜允许您使用太阳光(或任何物体)演员根据太阳的旋转来掩蔽对象。这可以用于移除对阳光敏感的对象,苔藓是最常见的用例。

添加 / 移除掩膜

这是一种简单的掩膜技巧,允许我们随机添加或移除实例。 例如,您可以使用接近掩膜清除路径上的植物,然后以较低值使用添加掩膜以保留一些零散出现的植物。

属性引用

在创建复杂设置时,例如为树木使用一个表面散布,为灌木使用另一个,为草地使用另一个……再为森林中的一些木桩和道路使用路径散布等,这种复杂性很快会变得难以管理,我们使用引用来理清这些关系。 您的道路会有一个宽度,而您希望木桩尊重该宽度,即使它们有一点偏移。对森林植被也是一样,您希望它们不在道路上生成,等等。

实现这一点的方法是创建引用属性。我们在 入门指南 页面中介绍了它们,但工作流程相当简单:您可以创建一个决定道路宽度的 Distance 或 Width 属性,所有那些工具都会使用它。当一个属性使用引用时,我们会给它一个权重,这允许您基于引用提供的值扩展该属性的值。例如,如果您的宽度为 320,木桩可以有一个 0.1 的权重,这会使它们比宽度略大,因为权重相当于对其的百分比乘数。

散布表格

在后续版本(自 Dash 1.8.5 起),我们开始向某些工具添加数据表。主要的是表面散布中的散布表格。与其仅在散布属性上使用 + 图标简单地分配多个散布对象,您可以通过点击编辑表格按钮打开散布表格。

在这里,您可以创建多个属性行,为每行分配一个或多个散布对象,然后您将能够控制每个属性行的 密度偏移 和一个 缩放偏移 。因此这意味着您可以用一个表面散布对散布对象进行非常具体的控制,而无需创建多个表面散布。

此数据表逻辑正在逐步扩展到其他工具和设置,以便在某些情况下为您提供所需的细粒度控制。

最后更新于

这有帮助吗?