这周我添加了一些Micro Voxel Engine的主要功能。第一项是较为简单的流体模拟,伴有水视觉效果着色器。

接着是首个世界生成特性的程序生成池塘。

— 流体模拟 —

这个流体模拟使用了较为原始的GPU物理模拟,支持体积运输和运动向量。它在粗糙网格上运行,使用单元占有参数来确定单元是否可以接收流动量和多少,以及流动量如何离开。

在此基础上进行了一些优化以控制时钟率和模拟区域。

它主要关注在游戏中表现得相对不错,并且非常快速,而不是准确性。然而,未来可能会对此进行调整。

大部分不方便的地方都在于管理块的生命周期和阻止其他世界特征从池塘中抽干水(例如洞穴裂缝)。

— 池塘生成 —
基本上是使用盆地检测来生成池塘,然后随机选择池塘的大小。池塘周边和水下都会生成池塘细节。中间的大池塘会有时生成岛屿。池塘不是总是圆形,但通常会很小。

鱼类会动态生成并被归类为“细节实体”,这意味着它们的状态不会持续并且会很快消失。

我计划让鱼类成为一个副手段,并且会根据池塘位置和时间来决定鱼类品种的选择,以便玩家无法通过选择池塘来控制鱼类品种。

最终我很满意这个结果。
我在过去的各种项目中尝试过水模拟,但从未能让3D效果好。还有一些问题,但也算是成功了。