这个问题与这里提出的问题非常相似。
我的问题是我有一张地图,如下所示:
这张地图是使用 2D Perlin 噪声制作的,然后运行创建的高度图,根据相应元素的高度或坡度为地形中的每个元素分配类型和颜色值,非常标准。地图数组是二维的,屏幕尺寸的精确尺寸(每像素像素),所以在 1200 x 800 生成时,在我的装备上大约需要 2 秒。
现在放大突出显示的矩形:
显然,随着尺寸的增加,细节会丢失。这就是问题所在。我想即时创建额外的细节,然后在玩家四处移动时将其写入磁盘(玩家只是一个限制沿网格移动的点)。我看到了两种方法,我很快就想到了第一种方法:
这是从旧地形的采样元素创建的新的有偏差的局部地形的放大视图,在上一张图像中由黄色网格空间(中心左侧)突出显示。然而,这个系统需要大量的修改,例如,如果你将一个单元从黄色网格空间的左上方移动到海滩瓷砖上,地形就会完全改变:
所以为了让它正常工作,你需要做大量的,我猜这个词应该是插值,以创建一个平滑的过渡,因为玩家在本地世界中移动了 40 个左右的网格空间,需要到达下一个世界在世界各地平铺。这看起来很复杂而且很不雅。
第二种方法是将原始地图的网格分解成更小的位,也许将每个正方形除以 4?我还没有实现这个,我不确定我会如何以一种实际增加细节的方式,但我认为这可能最终成为最好的解决方案。
关于我如何解决这个问题的任何想法?请记住,它必须是本地的和即时的。只是增加地图的分辨率是我想不惜一切代价避免的事情。