Skip to content

Marching Squares Extension

此扩展允许构建标量场并绘制其轮廓线。

有6个示例演示了在游戏中如何使用它们:

理解标量场

标量场将值与空间中的每一点关联起来。例如,标量场的值可以代表地图上的高度(2D空间)。

理解轮廓线

具有相同值的点构成轮廓线。这可以用于绘制动态变化的形状。

使用轮廓线

绘制液体效果

可以使用轮廓线制作液体或斑点效果。在液体示例中,每滴液体都是具有重力并相互碰撞的物理对象。每滴液体在场景中都有一个刺。该操作被称为“添加圆盘”,因为其轮廓线是一个圆。

使用“添加”操作将刺合并在一起非常重要。当两个刺相邻时,它们的值相加可能超过轮廓线所选择的值。这就是两滴液体之间吸引力的感觉。

绘制战争迷雾

与前一部分不同,战争迷雾需要将刺合并而没有斑点效果。可以通过“添加圆盘”操作选择“最大值”操作来实现。

战争迷雾通常会保留一个被侦察区域的痕迹。但是,每一帧都会清除视野范围以便使用物体的新位置进行更新,这意味着之前的侦察区域被遗忘了。可以使用“合并”操作将轨迹保留在另一个场中。!!原始内容

制作可破坏的环境

!!原始内容

可破坏或动态环境可以通过与前几节中相同的逻辑实现。物体可以通过“添加圆盘”动作创建,并可以通过“遮罩圆盘”操作销毁。

“遮罩圆盘”操作在此之前还未介绍,让我们看一下它在“添加圆盘”旁的效果。轮廓线是一个被另一个圆盘吃掉的月亮季度形状。像上一张截图中的更复杂的形状可以通过组合更多的圆盘动作来构建。

!!原始内容

绘制领土

!!原始内容

前面的章节展示了如何使用“圆盘”动作构建形状,这些动作有点像绘图应用程序中的画刷。在这些应用程序中,油漆桶工具可以填充一个区域。同样,可以使用“洪水”动作将场地的部分填满到给定水平。也可以把它看作为水坝淹没一个山谷。

!!原始内容

!!原始内容

洪水之前

洪水之后

使用标量场

构建地形

!!原始内容

在前一节的示例中,标量场仅用于从轮廓线构建形状。构建地形时,场的值表示高度,因此需要所有场的值来给出图形表示。

“圆盘”动作在中心附近给出非常高的值。这不允许对地形高度进行精细控制。这就是“山丘”动作的作用所在。它允许在中心选择一个高度。实际上,它也可以用于绘制形状,但是需要比“圆盘”动作更复杂的运算。下图显示了一个山丘,左侧高度较低,右侧高度较高。

!!原始内容

对地形的坡度作出反应

当场的值表示地形高度时,可以使用“NormalX”、“NormalY”和“NormalZ”表达式对物体施加力量,并给人一种它们从斜坡上滑落的感觉。

!!原始内容

约束地形生成

噪声可以用来生成地形,但是如果没有任何约束,结果可能难以使用。

!!原始内容For instance, a terrain can be forced into an island. To do so, 2 constraints can be used: * a lower bound to ensure that the terrain is over the sea level where the island should be * an upper bound to ensure that the island is surrounded by sea

One scalar field can be used for the lower bound and another the upper bounds. They will define a range of value for every point of the surface and the noise will be stretched in between. They can be built with hills like in the following illustration to give the general shape of the island.

Island shape

Island with noise