2014-02-10 91 views
1

我一直在使用柏林噪音來生成基於等距的地形景觀。到目前爲止,我一直在使用噪聲值作爲瓷磚本身的高度圖:Math.floor(noise * 10),基本上。這產生了非常漂亮但看起來線性的地圖。然而,我發現「山」相當無聊,所以我申請了一個指數:Math.floor(Math.pow((noise/4), 2.3))。這會將較高的值向上推,產生附加的圖像。固定等高柏林噪音的高度問題

這些高度值是存儲在一個2D網格,給我x,yz我需要繪製地圖到屏幕上。

缺點是顯而易見的:我的山區有空隙應該填滿。我只是不確定從哪裏開始,因爲這是我無法再在二維網格中存儲的信息。我想我可以使用「更長」的瓷磚作弊,但這是一種跛腳。有什麼建議麼?

如果您需要更多信息,我很樂意解釋。也許我在吠叫錯誤的樹。

isometric perlin noise

回答

1

之前繪製的第一個瓷磚遠在後面看看對左,右更接近觀衆的兩個相鄰的瓷磚。獲取它們的最低高度,並檢查此高度是否低於您的背部瓷磚減去一個高度。 (因爲這會造成差距)。現在你可以開始在這個「低高度」開始在後面的堆上堆疊瓷磚,直到你達到你想要的高度。然後,您可以使用相同的算法繪製更接近觀看者的下一個圖塊。

編輯:但我只是想知道這是否會看起來很尷尬與如此多的堆疊瓷磚。也許最好只是將土層拉伸至「低高度」。

+0

所以你的建議是回填土磚直到間隙消失。我可能會訴諸這一點,但我仍然希望我能以某種方式將它變成一個3d網格。如果我想在實際中繪製這個圖像,有一天會更容易3d – Jorg

+0

是的,這就是我所建議的,實際上它已經在某種程度上3D了! ;) – Christoph

+0

以及它更多的3D幻覺,但我會去這:) :) – Jorg