我工作在2D程序岛发电机。到目前为止,我已经使用了多种噪声函数和混合来实现所需的岛形状,但目前它们的尺寸仅为300 x 200像素。我想要做的是将图像数据(不是图像)缩放到400,000 x 400,000范围内的所需地图尺寸。我认为只是简单地将噪声函数改为较低的频率,导致一个更大的岛,但我也将它们与生成的梯度混合在一起,这个梯度已经在计算量上很大。增加我生成的渐变的大小会极大地伤害世代时间。
我的岛状/图像:http://4.bp.blogspot.com/-ed7nK7jwcJc/UxYjNMxUF-I/AAAAAAAAASc/sG-BygA4usA/s1600/PopulationMap1.png
岛后面的数据是浮范围从0的数组 - 1表示水/海滩/土地。我需要的只是将这个数据缩放到我需要的范围内,以便继续生成道路等等。基本上每个像素都是一块瓷砖,我需要宽度从目前的300宽度大约400k宽。我意识到输入数据可能太少,无法将其扩展到很高的水平,但我仍然想尝试。
我已经阅读了所有图像过滤和插值方法,但我无法掌握它们中的任何一个。我注意到这个问题已经问Array interpolation,但我不明白如何让它在大于4x4的网格上工作,但OP描述了我正在寻找的东西。
基本上线性或双三次浮点值的大网格过滤/缩放。我只需要一些示例代码来描述这个过程。
如果一切都失败了,我会将我的渐变切换到一个更简单的方法,并以我希望它开始的大小生成完整的地图数据。但我真的想尝试缩放它。提前致谢。
编辑 - 我已经到了一个点,我有一个加权值对的列表围绕我查询点的每个瓷砖。所以如果我在5.5,5.5的价值查询,我会得到周围(包括)5,5的瓷砖的价值和重量。所以我有一个9 {0.9,1.27} {0.3,0.77}等值对的列表,其中第一个是数组中的元素,第二个是它的权重(它与查询点之间的距离的倒数)。现在我正在努力将所有这些加权值对添加到一起以达到最终值。我很确定它与某种内插有关,但我无法完全理解如何去做。如果我能通过这部分,那么我应该与其他人一样好。