抱歉,文字有点多。稍后我会添加图片。我需要生成一个立方米体素的相对真实地图,包括水、沙子、草、树木、矿物、沙漠、海滩、岛屿等,但不能使用任何Voronoi剪裁(即要聪明地将这些因素联系起来)。是的,这是一个游戏。
我想随机生成关键点并插值它们以获得高度和湿度读数,但我在随机生成方面一无所知。基本上,我需要一个相当均匀分布的点列表,而不必一次性生成完整的列表。我需要每次生成大约20x20x20个点,并且可能需要处理大约1000x1000x1000个关键点单元格,但我希望在大单元格的边缘发生奇怪的事情。有没有人知道以这种方式选择点的方法?真正的问题在于点应该更喜欢靠近其他点,以"山脉"风格链的形式。
问题在于这是在这些1公里的单元格中发生的。
我可以简单地在单元格内选择点,但由于单元格及其相邻单元格需要相互依赖,我的简单算法会遇到需要无限扩展的单元格之一,或者看到破碎链条的网格模式。链条不应在单元格边界处更频繁地断裂。如果它们这样做,生成中将显示出一种有问题的晶片状图案,并且对于设计/游戏玩法原因而言是无法使用的不良生成。
n.b. 对于这些目的,系统级随机生成器可以被种子化并且实际上是均匀的。至于单元格内部,我可以很好地选择链条。
我还考虑让单元格溢出到任何未生成的单元格,以便其链条开始连接到现有的链条,但这将打破基于位置和种子的确定性生成,增加了生成顺序作为一个因素。
再次强调,为了实现真实感和设计,我试图避免使用Perlin。或者我应该发布在 gamedev.SE 上?
我想随机生成关键点并插值它们以获得高度和湿度读数,但我在随机生成方面一无所知。基本上,我需要一个相当均匀分布的点列表,而不必一次性生成完整的列表。我需要每次生成大约20x20x20个点,并且可能需要处理大约1000x1000x1000个关键点单元格,但我希望在大单元格的边缘发生奇怪的事情。有没有人知道以这种方式选择点的方法?真正的问题在于点应该更喜欢靠近其他点,以"山脉"风格链的形式。
问题在于这是在这些1公里的单元格中发生的。
我可以简单地在单元格内选择点,但由于单元格及其相邻单元格需要相互依赖,我的简单算法会遇到需要无限扩展的单元格之一,或者看到破碎链条的网格模式。链条不应在单元格边界处更频繁地断裂。如果它们这样做,生成中将显示出一种有问题的晶片状图案,并且对于设计/游戏玩法原因而言是无法使用的不良生成。
n.b. 对于这些目的,系统级随机生成器可以被种子化并且实际上是均匀的。至于单元格内部,我可以很好地选择链条。
我还考虑让单元格溢出到任何未生成的单元格,以便其链条开始连接到现有的链条,但这将打破基于位置和种子的确定性生成,增加了生成顺序作为一个因素。
再次强调,为了实现真实感和设计,我试图避免使用Perlin。或者我应该发布在 gamedev.SE 上?