手続き上の惑星、高さ、テクスチャ
-
28-09-2019 - |
質問
私は現在、OpenGL Procedural Planetジェネレーターに取り組んでいます。私はそれをスペースRPGに使用したいと考えています。これにより、プレイヤーが惑星の表面に降りることができないので、Roamに関連するものは無視しました。モーモメントでは、図のようにVBOを使用してキューブを描き、球体にマッピングしています ここ.
私はほとんどのフラクタルの高さ生成技術に精通しており、すでに自分のバージョンのMidpoint Dispacementを実装しています(この場合、それほど役に立ちません)。
私の質問は、ハイトマップを手続き的に生成するための最良の方法は何ですか。私は見ました libnoise これにより、魅力的な高さ/テクスチャを作成できますが、私が見る限り、次のようなネットを生成する必要があります。
タイルを明らかにしたままにします。
誰かが私に服用するのに最適なルートについてアドバイスできますか?
どんな入力も大歓迎です。
ありがとう、
ヘンリー。
解決
平らでシームレスな表面を生成し、それを球体にマッピングしようとする問題を理解しているようです。
代わりに3Dノイズ機能を使用してみませんか? 3Dノイズ関数は、入力として2の代わりに3つの座標を取るので、(2D配列の代わりに)生成された数値でいっぱいの3D配列を想像してください。したがって、3Dノイズ関数を作成したら、2Dテクスチャを生成できますが、各ピクセルに2D座標を使用する代わりに、そのピクセルが球上にある場所の3D座標を使用します。 (複雑な文が理にかなっていることを願っています!)
Perlin Noiseについてのこのページの中間ダウンをご覧ください。 https://web.archive.org/web/20120829114554/http://local.wasp.uwa.edu.au/~pbourke/texture_colour/perlin/
球体に関してあなたが望むものを正確に説明していると思います。
他のヒント
また、2004年から、球体を管理可能な部分に「分割」する方法についてこの記事をチェックすることもできます。