2014-10-01 61 views
2

我有一個perlin噪音函數,我想用它來挑選我的遊戲地圖的生物羣系。問題是生物羣落由兩個因素決定 - 平均降水量和平均溫度。所以,我想,我只是做兩個珀林噪聲函數並重疊它們。使perlin噪音的範圍更小

現在的問題是生物羣落不包括所有可能的降水溫度組合。例如,如圖所示,沒有高降水和低溫的生物羣落。

如何我還可以使用Perlin雜點,但永遠達不到的並不受生物羣落的領域?

+1

最簡單的解決方法是隻要在地圖中沒有擊中的地方重新滾動柏林噪音(顯然值稍有變化)。不知道這會對你的總點數有什麼影響。而這可能需要一段時間才能擺脫這個「不好」的領域。 – 2014-10-01 02:43:59

+0

是的,最安全的做法是放棄超出允許範圍的結果。 – StilesCrisis 2014-10-01 03:30:35

回答

0

您可以將值限制在允許的範圍內(例如,溫度爲0°C的區域內的最大允許降水量爲100釐米)。

您可以在噪聲算法本身期間執行此操作,而不僅在整個值字段完成後執行此操作。我會想象它會這樣工作:

  • 首先生成溫度圖。
  • 當您爲降雨噪聲生成每個隨機值時,根據溫度圖所允許的值範圍生成一個範圍縮小的值。

示例: 如果要在範圍產生隨機值0 - 250毫米(最大可能的降雨的約50%,對於低頻率的噪音層之一),看該像素中的溫度,看到它的10°C,因此隨機值的範圍將縮小到0-100mm(該溫度允許的0-200mm的50%)。

因此,即使您爲每個圖層滾動最大隨機值,複合值也將受限於溫度所決定的最大值。

我不知道這是多麼逼真,現實主義對你有多重要。什麼能夠準確地防止低溫地區降雨量大?我提出的解決方案實際上可能很好地模擬了低溫地區蒸發減少的因素。

編輯:

還有一個想法,這可能最終會被等同於我的第一個解決方案:

  • 同時生成溫度圖和雨量圖獨立。
  • 通過溫度圖乘以降雨圖(縮放到範圍< 0,1>)。這會降低低溫地區的降雨量。