散布遮罩功能

散布是 Dash 最常用的功能,其遮罩能力正是原因。让我们深入了解它们!

确保阅读 入门 页面,以便更容易消化此页中的信息。本页假定你已了解有关 环境创建 的基础知识,涵盖了使用 Dash 工具的基本内容。

Dash 包含各种散布(scattering)工具,每个工具针对特定用途进行了定制。 大多数工具具有非常基本的遮罩功能,而 Surface Scatter 则几乎包含本页所述的全部功能。

Surface Scatter 是一个世界级的散布解决方案,作用于你的网格表面。 其思路是给它一些几何体(静态网格、地形、程序网格等...)作为要散布的表面/地面,以及一些你想要散布的演员(actors),然后它将发挥其魔法。

这是 Dash 中功能最全面的工具,包含了来自多个大型 AAA 工作室、优秀独立艺术家以及我们团队对最先进世界构建不断追求所提出的功能请求。

遮罩功能

Dash 的散布工具包含各种遮罩功能,虽然大多数功能只在 Surface Scatter 中存在,但其他工具仍有一些遮罩功能,我们也在积极为它们扩展遮罩功能。 下面我们将查看所有主要的遮罩功能、它们的工作原理以及你可以用它们做什么。

在我们深入之前,这里所说的“遮罩”是指移除已散布的实例。此外,大多数遮罩组允许你反转遮罩结果。你会注意到一些属性的右下角有一个小黑圈,这意味着你可以右键单击该属性并选择 反转遮罩.

的分组。

此功能允许你使用曲线、网格和实例进行遮罩。

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

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

你可以利用近邻遮罩来构建真实感的森林场景。首先,你会散布树木,然后在树下保留一些蕨类和叶子,如果需要路径,可以使用曲线作为近邻遮罩,然后在路径边缘散布一些岩石,等等...

从 Dash 1.8.5 起,Surface Scatter 能够添加无限数量的近邻遮罩,这通过近邻表(Proximity Table)来实现。它取代了以前的 3 个近邻遮罩。在近邻表中,你可以创建组,每个组都有自己的对象、距离和宽度值。例如,你可以使用第一组以特定距离屏蔽一些对象,再用另外两组做相同的事情。

最后,近邻遮罩非常适合进行遮罩反转。

角度遮罩

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

高度遮罩

像 Surface Scatter 这样的工具具有 最小高度遮罩最大高度遮罩 属性,允许你从上方或下方裁剪散布的对象。

对象遮罩

与仅依赖距离的近邻遮罩不同,对象遮罩使用光线追踪来确定你的实例是在对象内部、外部还是附近。如果你想画一条曲线并保留该曲线内的所有实例,这个功能非常合适。你也可以用它来保留位于网格或体积内部/外部的实例。

这种遮罩方法还有一个 保持内部 布尔属性,你可以切换它以确保遮罩要么保留位于输入对象内部的实例,要么保留位于外部的实例。你也可以使用 距离 属性来保留靠近的实例。

噪波遮罩

噪波遮罩允许你快速打破已散布对象的均匀性。 你可以获得范围广泛的参数,从缩放到频率、轴向拉伸、噪波平滑、扭曲等...

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

簇集遮罩

簇集遮罩通过随机选择实例并将它们作为簇的中心点来工作。 你可以调整一个值来控制采样实例的密度,另一个值来控制簇的半径。 与噪波和其他遮罩结合使用时,这可以成为实现真实感散布设置的强大工具。

边界遮罩

边界遮罩会检测表面几何体的边界边缘,并屏蔽掉靠近这些边界的所有对象。

此功能对于像花园这样的人造散布设置非常有用,你可以创建一些底层几何形状,在上面散布植物,然后隐藏该几何体。 你几何体上的每个边环(edge loop)边界会被单独处理,而 边界最小/最大 属性允许你为每个边界环的遮罩添加一些随机性。 噪波是一个简单的噪波效果,用于打破边界的均匀性。

投射遮罩

投射遮罩的工作原理是让每个实例的点向上发射一条射线,任何被射线击中的且你已将其添加到投射遮罩中的网格都会确保被射线命中的实例被保留。你也可以反转此效果。 使用场景包括保留位于某些物体下方的实例,比如车下的植物或垃圾,或移除场景中位于任意设定物体下方的所有实例。

景观图层蒙版

此遮罩功能允许你将图层的名称传递给 Surface Scatter,工具随后将使用该图层作为遮罩。你最多可以传入三个图层。

纹理蒙版

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

顶点颜色蒙版

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

方向性蒙版

与角度遮罩不同,方向性遮罩允许你使用你的阳光(或任何对象)演员基于太阳的旋转来屏蔽对象。这可以用来移除对阳光敏感的物体,青苔是最常见的用例。

添加 / 移除 遮罩

这是一种简单的遮罩技巧,允许我们随机添加或移除实例。 例如,你可以使用近邻遮罩清理路径上的植物,但随后以较低的值使用添加遮罩以保留一些零星出现的植物。

属性引用

在创建复杂设置时,例如用 Surface Scatter 散布树木、另一个用于灌木、另一个用于草等,然后再用 Path Scatter 在林中放置一些木桩,以及一条道路等……这种复杂性很快会变得难以管理,我们使用引用来理清这些关系。 你的道路会有一个宽度,你会希望木桩遵循该宽度,即使它们有轻微的偏移。对于森林植被也是如此,你会希望它不会生成在道路上,等等。

实现方法是创建引用属性。我们在 入门 页面中有讲解,但工作流程相当简单:你会创建一些决定道路宽度的 Distance 或 Width 属性,所有这些工具都会使用它。当某个属性使用引用时,我们会给它一个权重,这允许你将属性值扩展到引用提供的值之外。例如,如果你的宽度为 320,木桩可以有一个 0.1 的权重,这会使它们比宽度略大,因为权重会像一个百分比乘数一样作用于该值。

最后更新于

这有帮助吗?