2011-06-11 126 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

重寫你的珀林噪聲是位置的函數。然後,您可以增加八度音(從而增加細節音量),並以更高的分辨率重新採樣該區域。