World Clutter
World Clutter节点实际上允许一次单击即可在场景中随机散布一组相同的节点(node references)。不再需要手动定位,缩放和旋转每个单个对象,而始终关注性能因素。 World Clutter会自动将具有随机参数的节点放置在场景中,所有这些参数都可以得到有效控制,并且仅在摄影机周围渲染它们。 World Clutter用于分散非几何对象,例如贴花,粒子系统等。但是,如果要散布相同的网格,最好使用Mesh Clutter。
World Clutter会按程序分散对象,从而提高内存效率。同时,这意味着无法移动分散的对象。
也可以看看#
- 通过API编辑World Clutter的WorldClutter类
造成世界混乱#
要创建World Clutter,请执行以下操作:
-
添加一个World Clutter节点:菜单,选择Create -> Clutter -> Node。
- 在现场找到World Clutter。
世界杂物#
World Clutter中的对象是node references,这些对象散布在确定的区域中,并针对每个对象控制其出现的可能性。
Probability slider |
与其他World Clutter对象相比,概率越高,看到node reference的可能性就越高。假设我们用木片和藻类创造了海岸。我们创建木屑贴花和藻类贴花,并将它们另存为*.node文件(创建一个NodeReference文件)。如果藻类的概率滑块接近于零,则海岸将充满木片,并且仅在其中观察到一些藻类。更改出现概率不影响渲染对象的数量,它仅指定多个World Clutter对象之间的比例。
|
---|---|
Add | 将参考节点添加到World Clutter对象的列表中。 |
Remove | 从列表中删除所有选定的node references。要选择一个对象,应选中它旁边的框。 |
Reload | 将所有node references重新加载到World Clutter中。编辑node reference后,保存的更改不会自动应用于由World Clutter分散的相同节点。发生这种情况的原因是,从内部缓存复制了一次加载后的参考节点,这可以真正快速地创建很多副本。 Reload选项将更新此缓存,并且对象参数的更改生效。 |
世界杂波参数#
World Clutter呈现为2D网格,根据World Clutter的密度和出现的概率,在每个单元中随机放置了多个World Clutter对象。单元是从最近的单元开始一个接一个地生成的。这种方法可以控制分散的对象彼此之间有多近或远,同时还可以减少摄像机移动且可以看到更远的单元格时的渲染负担。
一旦添加和分散,这些对象将无法移动或旋转。更改散射图案的唯一方法是更改种子。
Size X
Size Y |
沿X和Y轴的World Clutter边界框的大小。在该区域内,对象将以指定的密度散布。 大小以单位为单位。 |
||
---|---|---|---|
Step for Cells |
像元大小(单位)。通过以下方式定义World Clutter中的像元数:尺寸World Clutter的x(沿X和Y )除以步长。 单元数越多(即步数越小),负载越高。但是,创建一个大单元需要更长的时间。当摄像机移动得足够快时,小单元的创建速度会非常慢,但是大单元会明显地出现在视野中,并导致较小的渲染滞后。 |
||
Density |
密度指定每平方单位有多少个对象。如果World Clutter中有多个对象,可能性将被考虑在内,但不会更改所有渲染对象的结果数量。 如果密度值太高,则物体可能会相互穿透。
|
||
Visibility Distance |
在可见距离范围内,物体的数量严格由密度参数。这意味着所有应该存在的对象均已找到。
|
||
Fade Distance |
在淡入淡出距离上,对象的数量逐渐减少,因为它们会随机地一个接一个地消失。淡入距离是从Visibility Distance开始测量的。如果设置了淡入距离,则没有清晰的线条将World Clutter中包含的对象突然消失。取而代之的是,它们中的一些将被平滑地融合到背景中,而没有任何视觉噪音。 为了获得最佳效果,还建议将此效果与物体淡出。 |
||
Spawn Rate |
确定每帧更新多少个单元(渲染World Clutter的单元)。 设置的更新单元数过多可能会导致性能峰值。 |
||
Seed | 伪随机数生成器的种子值允许创建不同的自动定位模式。可以手动设置种子,也可以由引擎为种子提供随机值(Randomize选项)。 |
随机化世界杂物#
为了使组成World Clutter的对象的外观随机化,使用了两种类型的值:
- 平均值(Scale, Offset, Rotation)定义平均值。这些是将随机提高或降低的基本值。
-
传播值(Spread)定义了参数可能变化的范围。值越高,最终结果将越多样化。
扩展值是可选的:如果设置为0,则不会影响仿真过程,并且仅对所有对象使用平均值。
指定这些值后,将根据以下公式计算每个参数:
Result = Mean + Random * Spread
其中Random是-1至1范围内的随机值。例如,如果参数的Mean值等于3,而Spread值等于1,则最终结果将是从2到4的任意值。
Scale |
散布物体的比例平均值取决于最小和最大比例平均值以及影像遮罩值:遮罩值用于在最小和最大比例值之间线性内插。 这吝啬的标度值不能为负。
|
||||
---|---|---|---|---|---|
Offset |
高度偏移参数控制是否将所有对象都定位在一个高度上,或者将某些对象定位在更高或更低的位置。例如,可以将带有偏心的石头挖到地下深处,以便只看到很小的顶部,或者将其放在更高的位置并看起来更大。 偏移量以单位为单位。 |
||||
Rotation X
Rotation Y Rotation Z |
这些参数允许随机定向分散的对象。 旋转角度设置。如果散布值设置为180,则对象将旋转360度。 |
物体遮蔽区域#
使物体均匀地分散在各个方向和位置上自然不是很方便。代替创建覆盖覆盖有限位置的多个小World Clutter节点,可以将较大的World Clutter节点与遮罩一起使用。
Image Mask |
对象随机散布的区域以及列表中没有任何对象的区域。例如,在地形上,面罩允许将碎屑散布到某些区域,而其他地方则没有空间。
要直接在场景中绘制图像蒙版,请使用Mask Editor。 |
||
---|---|---|---|
Threshold for Mask |
为了控制掩膜的强度,使用了掩膜阈值。它检查某个区域的蒙版密度,如果阈值高于蒙版的颜色值,则对象会散布在整个蒙版上。如果遮罩的密度不足,则该位置将裸露。
|
||
Mesh Mask | 基于网格的蒙版可用于放置对象。矢量蒙版可以不依赖于蒙版纹理分辨率,并且可以以极高的精度创建道路,河流等。用于遮罩的网格应该是简单的平面网格。 | ||
Inverse | 切换标志可使对象放置在网格轮廓之内或之外。 | ||
Min and Max mask values |
作为高级对象分配和内存消耗优化的解决方案,不仅可以使用整个蒙版,还可以将其任何需要的部分应用于对象。这意味着不同的对象可以共享相同的蒙版,但是使用不同的级别。 默认情况下,影像遮罩指定[0;255]颜色密度范围内的面积和增长密度。但是,通过使用最小值和最大值,您可以指定范围内的任何颜色密度范围,并且包含相应值的蒙版部分将用于分散节点。 让我们看下面的R8影像遮罩举个例子:
代表不同高度节点的几个对象可以共享此掩码,如下所示:
|
||
Flip X | 的水平翻转影像遮罩。 | ||
Flip Y | 垂直翻转影像遮罩。 | ||
Cutout Intersection | Cutout位掩码。该遮罩用于在与对象和贴花相交的区域中切出World Clutter个对象(例如,去除房屋下方或使用贴花投射的道路表面的植被)。 World Clutter对象被其Intersection掩码与此对象(至少一位)匹配的对象和贴花切出。 | ||
Cutout Inverse | 切换指示World Clutter对象应在cutout intersection遮罩确定的区域内部还是外部渲染的值。 |
沿救济方向#
除非World Clutter中的对象散布在完全平坦且没有倾斜的表面上,否则它们可以自动定位以精确地重复浮雕的起伏而无需任何努力。为此,应将基础表面设为World Clutter节点的父级。 (如果在terrain或网格节点与World Clutter之间的层次结构中存在某些节点,则仍将检查相交。)
交集的父项只能是地形或网格物体。网格应该像地形一样,即沿Z坐标在垂直方向上只有一个曲面。
Intersection |
选中Intersection框后,World Clutter中的对象会散布在父对象的整个表面上。 World Clutter是否大于父对象的大小无关紧要-散射区域仍将限于父对象表面。 |
||
---|---|---|---|
Orientation |
此选项允许将父曲面法线向量设置为散布对象的初始方向。这意味着,如果某个地方的表面垂直,则散落在其上的物体的向上方向实际上将指向侧面。对象仍然可以是随机的旋转的但相对于父级法线的方向。 仅当启用了Intersection选项时,才启用此参数。
|
||
Angle |
就像在草,散射可以考虑坡度有多陡。
仅当检查Intersection选项时,才启用此参数。 |