我正在开发一个基本的2d地形生成器,目前它使用perlin-numpy生成了一个1024x1024“样例”地形。 我感兴趣的是在我的当前地形上生成另一个不同的“块”(如Minecraft),但在我的当前地形上平滑地匹配
TL;博士:
我使用的noise函数采用generate_fractal_noise_2d((1024, 1024), octaves=6)
我想做 generate_fractal_noise_2d((1024, 1024), location=(<x coord of chunk (pixels)>, <y coord of chunk (pixels)>), octaves=6)
一般来说,这对于噪声非常容易,因为噪声是一个点评估函数。如果这个库提供了一个“offset”参数,它就可以工作,但它似乎不工作。另外,您使用“柏林”噪声库而不是(开放式)单纯形有什么原因吗?Perlin是一个较老的噪声函数,它会产生明显的网格偏差。(开放式)Simplex可以在这方面做得更好。你可以在this image中看到顶部的柏林有很多45度和90度的部分。地形特征不会沿着更有趣的方向分布
下面是我要做的:
在原点生成块时,您将执行
arrayFractalNoise2((1024, 1024), (0, 0), ...)
。但是当在X中生成下一个块时,您将执行arrayFractalNoise2((1024, 1024), (1024, 0), ...)
等操作我可能在代码中犯了错误,但我希望它能有所帮助
(我在此在CC0下发布这些代码片段)
相关问题 更多 >
编程相关推荐