Mesh Clutter(网格杂物)
Mesh Clutter(网格杂物)是一种能包含大量完全相同网格的对象,这些网格都是被随意放置的,它们的朝向和缩放比例也是任意的,而且还不能对它们进行手动管理。 通过使用图像掩码(image mask)或网格掩码(mesh mask)就可以将网格杂物对象中的网格散置于一定区域内。
网格杂物对象通常用于植被(例如,森林,地面上的落叶)的布置,以及散布完全相同的对象(例如,垃圾)。
网格杂物用于遍布整个(或部分)虚拟世界或地形来散置完全相同的网格。 网格杂物会程序式散置对象,且它只负责渲染位于视锥体(Viewing Frustum)内的那些对象。 这样一来不仅能渲染数量众多的网格,还可保持高性能。
另请参阅#
- 通过UnigineScript脚本中的ObjectMeshClutter类编辑网格杂物
- 路径data/samples/objects/下存放的如下一组范例:
创建网格杂物#
要创建网格杂物,只需按如下步骤操作即可:
-
在菜单栏上点击Create(创建) -> Object(对象) -> Mesh Clutter(网格杂物)。
- 在打开的对话框窗口中选择存放.mesh文件的路径。 该网格将用作杂物对象的源网格。
- 之后将杂物对象放置在虚拟世界中的某处。
- 指定网格杂物的参数。
网格杂物的参数#
Mesh Clutter(网格杂物)与World Clutter(节点杂物)非常相似(后者是用于处理节点引用)。 网格杂物在众多被随机放置的meshs(网格)的每个cell(格间)中都会被渲染为2D网格(grid),而如此大量的网格要被随机放置还需依赖杂物对象的密度和出现的概率。 格间会由近及远逐一生成。 这种方法不仅可以控制散置对象彼此间相距有多近或多远,同时还能在摄像机移动时降低渲染负荷,使远处的格间变得可见。
Mesh(网格) | 网格,其副本将被散置。 |
---|---|
Size X(X轴大小) Size Y(Y轴大小) |
指的是杂物对象包围盒分别沿X轴和Y轴的大小。 在该区域内对象会以指定密度被散置。
|
Step for cells(格间间距) | 指的是按单位长度计算的格间大小。 杂物对象中,格间的最终数量的定义方式为:杂物对象的大小(指的是分别沿X轴和Y轴的大小)由step(间距)来划分。
|
Density(密度) | 密度指定了单位平方面积上会有多少对象。
|
Visible distance(能见距离) | 在能见距离范围内,对象的数量将由Density(密度)参数严格指定。 这也意味着所有应该呈现的对象都能在恰当的位置被找到。
|
Fade Distance(衰减距离) | 在整个衰减距离范围内对象的数量是逐渐减少的,具体表现就是这些对象会逐个随机消失。 衰减距离紧随能见距离之后。 如果设置了衰减距离,那在网格急剧消失的地方将不会出现清晰可见的线。 取而代之的是,剩下的很少一部分网格会平滑融合进背景而不出现任何视觉噪声。
|
Radius(半径) | 指的是绘制视锥体之外的对象所需的距离。 此选项可用来在转动摄像机时消除屏幕边缘处的阴影突变。
|
Seed(种子) | 伪随机数生成器的种子值能为自动布置创建不同形态。 种子可以手动设置,或是由引擎为种子提供随机值(使用Randomize(随机化)选项)。 |
随机化杂物对象#
要随机化网格杂物所散置的网格的出现,就需使用两类值:
- Mean value(平均值)(即:Scale(缩放比),Offset(偏移),Rotation(旋转))定义了平均值。 它是会被随机拉高或拉低的基本值。
- Spread value(散布值)定义了参数的可能变化范围。 该值越高,最终结果呈现的也就越多样。
散布值是【可选的】:如果该值被设置为0,那仿真过程也不受此影响,这时将只有平均值会被应用给所有对象。
待这些值被指定之后,就可以根据如下公式来计算每个参数了:
Scale(缩放比) | 该参数可随机缩放所有散置对象以使它们变大或变小。
|
---|---|
Offset(偏移) | 高度偏移参数可控制以同一高度或不同高度放置的所有对象是应在高处被找到,还是应在低处被找到。 例如,带有偏移参数的石头可被深插于地下,这样一来就只有石头顶部的一小块儿是可见的;或是将该石头放置在高处,以便让其看起来很高大。
|
Rotation X(旋转X轴) Rotation Y(旋转Y轴) Rotation Z(旋转Z轴) |
这些参数可随机确定散置对象的朝向。
|
遮蔽有对象的区域#
除了能遍布整个区域均匀散置网格,也可以为网格的布置应用掩码。 掩码可控制网格应被放置在何处。
Image Mask(图像掩码) | Mask(掩码)决定了要遍布哪些区域来随机散置对象,以及决定哪些区域是不存在列表中的对象的。 例如,在某一地形中,可用掩码在遍布多岩石的区域内散置石头,而使多草的区域内不掺杂岩石。
要想直接在场景中涂抹图像掩码,可使用Mask Editor(掩码编辑器)。 |
---|---|
Threshold for mask(掩码阀值) | 要想控制遮蔽的强度,须使用掩码阀值参数。 该参数用来检查某个区域的遮蔽密度,如果阀值比掩码的颜色值【高】,则对象会在整个区域内被散置。 如果遮蔽密度不够,则该区域会被留空。
|
Mesh Mask(网格掩码) | 基于网格的掩码可用来放置对象。 矢量遮蔽可不依赖掩码纹理的分辨率,它能创建拥有极高精度的道路,河流等等 。 用于遮蔽的网格应是简单的平面网格。
网格用作了掩码
基于网格的遮蔽
|
Inverse(取反) | Inverse(取反)标记选项用于切换对象是被放置在网格轮廓之内还是之外。
取反的遮蔽
|
沿地势确定朝向#
网格杂物也可用来沿地势散置对象。 要实现这一点,底层表面就须成为网格杂物节点的父节点。 (如果层级列表中的地形节点(或网格节点)与网格杂物间存在有多个节点,那相交选项仍然会被勾选。)
用于相交的父节点只能是terrain(地形)对象或mesh(网格)对象。 网格也应呈地形状,也就是说,它须只有一个沿Z坐标的垂直表面。
Intersection(相交) | 待Intersection(相交)复选框被勾选之后,对象就会遍布父对象的表面散置。
|
---|---|
Orientation(朝向) | 此选项可将父表面的法线向量设置为散置对象的初始朝向。 这意味着,如果表面在某个地方是垂直的,那位于其上的对象的【上】方向将会被真实地指向这一边。
|
Angle(角度) | 就像使用grass(草场)对象的情形一样,散置处理也可以考虑斜坡有多陡峭。
|