我已经在3D程序世界中工作了一段时间,并且想开始添加洞穴系统。
我想找到一种以程序方式创建3D洞穴系统的相当简单的方法。我目前正在使用Perlin Noise,2D进行高程/详细信息,3D进行悬垂和较小的洞穴雕刻来建立自己的世界,但是当涉及到相互连通的较长洞穴时,我会感到困惑。
我希望获得更多类似于Minecraft的洞穴系统的东西。它们似乎是非常紧密的联系,几乎可以在任何方向随机分支,并且洞穴中几乎任何点都将具有相当圆形的外观,并且半径始终相等(不是最好的措辞,但是不确定如何放置它) )。
像我想要的那样产生洞穴的最大挑战是,我想动态地创造世界。当前,世界是逐块生成的,从玩家所在的地方开始,然后从那里向外生成。我会而不是想要生成任何世界,然后然后使用漫游模式,细胞自动机等将洞穴挖出来。
一个很好的例子:
最佳答案
在生成世界时,我将对生成算法做出一些相当大的假设。
您正在创建一个与Minecraft类似的世界。这意味着世界是由块组成的,而这些块的缺失是构成“空中”或玩家空间的原因。因此,当您在世界上制作积木时,您不想放置积木,或者相反地,将积木移到希望有洞穴的地方。好?
洞穴的产生方式(实际上是负空间)完全取决于您。但是您的问题可能在于您的答案。洞穴“非常紧密地相连,几乎可以在任何方向随机分支,并且洞穴中的几乎任何点都将具有相当圆形的外观,并且整个半径范围都相等”。然后,您所需要的只是一个生成算法,该算法会按照该规范进行生成,或者不将块放置在那里或删除已放置的块,或者用您自己的话“挖出”。
顺便说一句,让生成算法从玩家所在的位置生成,听起来是个坏主意,但我想它是否可行。
关于3d - 简单的程序3D洞穴生成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11802213/