请原谅文字墙。稍后我会添加图像。我需要生成一个有点现实的立方米体素地图,包括水、沙子、草、树木、矿物、沙漠、海滩、岛屿等,没有任何形式的 voronoi 应对(即聪明地将这些因素与每个其他)。是的,这是一个游戏。
我想我会随机生成临界点并将它们插入以获取海拔和湿度读数,但我对随机生成感到茫然。基本上我需要一个稍微均匀的分数分布,而不必一次列出完整的列表。我需要一次生成大约 20x20x20,并且可能使用大约 1000x1000x1000 个临界点单元格,但我预计在大单元格的边缘会发生奇怪的事情。有谁知道以这种方式选择点的任何方法?真正的麻烦在于,点应该更接近“山脉”风格链中的其他点。
这里的问题是,这发生在这些 1 公里的小区中。
我可以简单地在一个单元格中以这种方式选择点,但是由于一个单元格及其邻居需要相互依赖,所以我的简单算法会遇到需要前往这些单元格中的一个无穷大,或者看到类似网格断链的模式。链不应在单元边界上更频繁地断裂。如果他们在生成过程中显示了一些有问题的类似晶圆的图案,并且由于设计/游戏玩法的原因而导致无法使用的糟糕的生成。
nb 出于这些目的,系统级随机生成器可以播种并且实际上是统一的。就一个单元格而言,我可以很好地选择链。
我还考虑过让一个细胞溢出到任何未生成的细胞中,以便它的链开始连接到现有的细胞,但这会破坏仅基于位置和种子的生成确定性,将生成顺序作为一个因素。
同样,出于现实主义和设计的目的,我试图远离使用 Perlin。还是我应该在gamedev.SE上发帖?