0

まず第一に、私の注ぐ英語で申し訳ありません。

simcity2000 やトランスポート タイクーンのような地形で仮想世界を作ろうとしています。地形はタイルで作られ、タイルの高さはタイル間で 1 レベル以上ジャンプできないため、崖はありません。

地形の生成には perlin\simplex ノイズを使用していますが、それを使用すると傾斜がきつくなります。

Open Transport Tycoon のソース コードを調べたところ、地形の生成後、マップ上のすべてのタイルがループされ、1 つのユニットだけの高さになるように平滑化されます。

しかし、マップがはるかに大きくなり、ループですべてを平滑化する余裕がないため、この方法では機能しません。また、どのタイルからスムージングを開始したかによって異なるため、地形の見える部分だけをスムージングすることはできません。

私は、それらのポイントの最大高さに等しい距離を持つ2つのポイント間の線形補間値を返す独自のノイズ関数を作成しようとしました。そのようにして、傾斜は45度を超えることはできません。一緒に機能します。

山の斜面が最大 45 度の地形を疑似ランダムに生成し、以前に生成されたマップを滑らかにする以外の方法でアプローチするにはどうすればよいですか?

現在、私はアイデアがなく、パーリンノイズに「最大傾斜角」などのオプションがあることを望んでいますが、Googleはそれを助けてくれませんでした.

4

1 に答える 1

0

各グリッド セル内の値は、勾配 1/gridSize (または実装によっては他の固定値) を持つ 4 つの勾配の間で補間されるため、Perlin ノイズは本質的に勾配制限されています。

タイル サイズに対してかなり広いグリッドで限られた数のオクターブを生成する場合、最大勾配 1 を保証する倍率を実験的に見つけることができるはずです。

于 2012-02-29T00:11:22.157 に答える