3

我一直在研究 3D 程序世界,现在我想开始添加洞穴系统。

我想找到一种以程序方式创建 3D 洞穴系统的相当简单的方法。我目前正在使用 Perlin Noise 生成我的世界,2D 用于高程/细节,3D 用于雕刻悬垂和较小的洞穴,但是当涉及到长长的相互连接的洞穴时,我感到很困惑。

我希望得到更像 Minecraft 的洞穴系统的东西。它们似乎非常紧密相连,几乎在任何方向上随机分支,并且洞穴中的几乎任何点都会具有相当圆形的外观,并且整个半径相当相等(不是最好的措辞,但不太清楚如何表达)。

像我想要的那样生成洞穴的最大挑战是我想动态生成世界。世界目前是逐块生成的,从玩家所在的位置开始,然后从那里向外生成。我不想生成任何世界,然后使用漫游模式、元胞自动机等挖掘洞穴。

一个很好的例子:

在此处输入图像描述

4

1 回答 1

0

在生成你的世界时,我将对你的生成算法做出一些相当大的假设。

您正在创建一个类似于 Minecraft 的世界。这意味着世界是由方块组成的,没有这些方块构成了“空气”或玩家空间。因此,当您在世界上制作积木时,您不希望在您希望有洞穴的地方放置积木或相反地移除已放置的积木。好的?

你如何生成洞穴,本质上是负空间,这完全取决于你。但在你的问题中可能存在你的答案。洞穴“非常紧密相连,几乎在任何方向上随机分支,并且洞穴中的几乎任何点都会具有相当圆形的外观,并且整个半径相当相等”。然后,您所需要的只是生成符合该规范的生成算法,并且要么不在那里放置块,要么删除已经放置的块,或者用你自己的话“挖掘”。

作为旁注,让生成算法从玩家所在的位置生成听起来是一个相当糟糕的主意,但我想它是否有效。

于 2012-08-03T20:58:33.233 回答