1

私は現在、OpenGL 手続き型惑星ジェネレーターに取り組んでいます。プレイヤーが惑星の表面に降りることができない宇宙 RPG に使用したいと考えているため、ROAM 関連は無視しました。現時点では、ここに示すように、VBO を使用して立方体を描画し、球体にマッピングしています。

私はほとんどのフラクタル高さマップ生成手法に精通しており、独自のバージョンの中点ディスプレイスメントを既に実装しています (この場合はあまり役に立ちません)。

私の質問は、高さマップを手続き的に生成する最良の方法は何ですか。タイル可能な高さマップ/テクスチャを作成できるlibnoiseを見てきましたが、私が見る限り、次のようなネットを生成する必要があります:

これ

タイリングを明白に残します。

誰かが私に最善のルートを教えてくれませんか?

任意の入力をいただければ幸いです。

ありがとう、

ヘンリー。

4

2 に答える 2

3

平らでシームレスなサーフェスを生成し、それを球体にマッピングしようとする問題を理解しているようです。

代わりに 3D ノイズ関数を使用するのはどうですか? 3D ノイズ関数は、その入力として 2 ではなく 3 つの座標を取るため、(2D 配列ではなく) 生成された数値でいっぱいの 3D 配列を想像してください。したがって、3D ノイズ関数を取得したら、2D テクスチャを生成できますが、各ピクセルに 2D 座標を使用する代わりに、そのピクセルが球上にある場所の 3D 座標を使用します。(複雑な文が理にかなっていることを願っています!)

パーリン ノイズに関するこのページの中ほどをご覧ください。

球に関してあなたが望むものを正確に説明していると思います。

于 2010-11-02T23:12:45.763 に答える
1

また、2004 年のこの記事で、球体を扱いやすい部分に「分割」する方法を確認することもできます。

http://www.gamedev.net/reference/articles/article2074.asp

于 2010-11-28T13:06:25.370 に答える