我一直在研究3D程序世界,我想开始添加洞穴系统。
我想找到一种以程序方式创建3D洞穴系统的相当简单的方法。我正在使用Perlin Noise创建我的世界,2D用于高程/细节,3D用于雕刻悬垂和较小的洞穴,但是当涉及到长的互连洞穴时我会感到难过。
我希望得到更像Minecraft洞穴系统的东西。它们似乎非常紧密相连,在几乎任何方向上随机分支,并且洞穴中的几乎任何一点都具有相当圆形的外观,整个半径相当相等(不是最好的措辞,但不太确定如何放置它)。
生成像我想要的洞穴的最大挑战是我想要动态地生成世界。世界是由块当前产生的块,从玩家所在的位置开始,并从那里向外生成。我会不想要生成任何一个世界,然后使用漫游模式,细胞自动机等挖掘洞穴。
一个很好的例子:
答案 0 :(得分:0)
在生成你的世界时,我将对你的生成算法做出一些相当大的假设。
你正在创造一个类似于我的世界的世界。这意味着世界是由块组成的,而这些块的缺失构成了“空中”或玩家空间。因此,当您在世界上制作块时,您不希望放置块或相反地移除您希望存在洞穴的放置块。 OK?
如何生成洞穴,这些洞穴本质上是负空间,真的取决于你。但在你的问题中,可能就是你的答案。洞穴“非常紧密地连接,几乎在任何方向上随机分支,并且洞穴中的几乎任何点都具有相当圆形的外观,并且在整个范围内具有相当相等的半径”。您需要的只是生成该规范的生成算法,并且不会在其中放置块或删除已经放置的块或者用您自己的单词“挖出”。
作为旁注,让生成算法从玩家所在的地方生成是一个相当不错的主意,但我认为它是否有效。