2011-06-11 221 views
7

这个问题非常类似于here基于现有地形的动态地形生成

我的问题是,我有一张地图,是这样的:

Main Map

此图是利用二维柏林噪声,然后通过创建高度图指派类型和颜色值的每个元素运行时制作在基于相应元素的高度或坡度的地形中,如此相当标准。地图数组是二维的,并且屏幕尺寸的精确尺寸(每像素像素数),因此在1200乘800代时我的钻机需要大约2秒。

现在放大突出显示的矩形:

http://i.stack.imgur.com/hrZnM.png

显然与增加的大小达到丢失细节。这里存在这个问题。我希望随时创建更多细节,然后在玩家四处移动时将其写入磁盘(玩家将仅限于沿网格移动的点)。我看到这样做的两种方法,并浮现在脑海的第一个我迅速实施:

http://i.stack.imgur.com/bbLia.png

这是一个放大视图从旧的采样元素创建一个新的偏当地地形地形,由前一张图像中的黄色网格空间(中心左侧)突出显示。然而这个系统需要修改了很多,因为,例如,如果你移动一个单元离开,上了黄色的格子空间,到海滩瓦,完全地形变化:

http://i.stack.imgur.com/6shKz.png

所以为了正常工作,你需要做过量的事情,我猜这个词会是内插的,以创建一个平滑的过渡,因为玩家移动了当地世界中的40个左右的网格空间,以达到下一个瓦片在世界各地。这看起来很复杂,很不雅观。

第二种方法是将原始地图的网格拆分成更小的比特,也许将每个方格分开4?我没有实现这一点,我不知道我将如何以一种真正增加细节的方式,但我认为这可能最终成为最好的解决方案。

关于如何处理这个问题的任何想法?请记住,它必须是本地和即时的。只是增加地图的分辨率是我想要不惜一切代价避免的。

回答

8

重写你的珀林噪声是位置的函数。然后,您可以增加八度音(从而增加细节音量),并以更高的分辨率重新采样该区域。