二维项目制作和私有化部署全流程免费,无水印,不限制数量 点击下载

5. 基于浅水方程式的WEBGL水体模拟

视频介绍

大家好,欢迎来到山海鲸水的设置系列教程。

前面,我们一起了解了平面水和波形模拟水这两种类型。今天,我们来看最后一种水,即基于浅水方程式的物理模拟水。

这种基于物理的模拟水,与其他两种水的用途非常不同。其他两种水,一般用于显示静态页面,比如静态的水面效果,如大坝上端水库的展示。而基于浅水方程式的动态水面,则更适用于表现大坝放水、洪水淹没城镇等动态场景。

当然,更常见的方式是离线模拟水的行为,然后将模拟结果实时展现在画面中。这需要我们在做相关项目时,具备离线模拟水、推测水深度变化的能力。山海鲸提供了一种相对简易、准确度不高但基本够用的实时模拟水流的方法,即基于WebGL的浅水方程式。

今天,我们一起来看一下浅水方程式模拟的水该如何设置。

首先,在插入框中找到“浅水模拟”选项,并单击它。此时,会生成一个方块。需要注意的是,浅水模拟是有范围的,范围越大,性能消耗越严重。浅水方程式非常消耗运算性能,因此推荐在正常情况下使用离线模拟,而非实时模拟。只有在需要展示不同地形下水流变化等偏实时场景时,才使用浅水方程式。

由于我们需要模拟大坝水流流下的效果,所以这个方块显然不够大。我们需要调整其大小。建议在其他地方先输入数字,然后直接复制进来,以避免直接修改导致画面卡顿。这里,我们设置范围为512米(推荐不超过1千米)。

调整好大小后,我们需要调整方块的位置。注意,水只能在方块内进行模拟。

此外,模拟精度也是一个重要参数。对于这么大的方块,模拟精度设为1可能精确度较差,可以设为2或3,但要根据电脑性能进行设置。这里,我们先保留为1,看一下整体效果。

展开浅水模拟选项,可以看到“出水点”设置。水最终会从这个出水点流出。我们需要将出水点调整到大坝的下方。注意,出水点不能放在房间内,否则模拟将不准确。

在GIS场景下,由于Cesium不支持多相机同时渲染,我们需要截取GIS深度,即拍个快照。因为GIS在拉远拉近时,深度可能不准确,所以最好在拉近时截取。由于不支持实时截取(切换Cesium相机到顶视图状态非常消耗渲染性能),所以我们需要先点一下“截取GIS深度”。

完成准备工作后,点击“开始模拟”。可以看到水从出水点慢慢流下。推进画面,可以观察到水流的效果。不过,由于精度不高,水流可能显得不够精细。

如果觉得水流太慢,可以调整更新速度,比如设为15。这样,水流速度就会快很多。

当水流到达边界时,将不再进行模拟。如果希望模拟更大区域,需要增大方块范围,但这需要更好的电脑性能。

实际上,我们可以实时调整出水点的位置,使其在不同地方放水。同时,出水点是一个正方形,也可以将其改小。

此外,我们还可以调整材质颜色来模拟洪水效果。比如,将材质调成黄色,并降低透明度,使其更像洪水。

如果不需要模拟了,可以暂停模拟并重置。这样,整个画面就会恢复原状。浅水模拟是可以通过交互进行控制的,这将在后面的课程中详细讲解。

现在,我们已经停止了模拟。可以将出水点调回原来的位置。注意调整时要看清空间角度,因为空间比较复杂。

调整好后,再次开始模拟。当然,颜色可以进一步调整,比如调得更黄一些,甚至偏向橙色,以使洪水效果更加逼真。

今天这节课,我们一起了解了浅水模拟的效果是如何呈现的。我们可以将出水点放到山上,观察洪水往下淹没时的效果。

好了,今天这节课就到这里。谢谢大家!

相关课程

1 2 3