地形に洞窟ネットワークとオーバーハングが必要な場合、3Dノイズは必須になります。
密度情報から等値面を抽出するための最も一般的な2つの手法は、マーチングキューブ(MC)と新しいデュアルコンターリング(DC)です。必要なデータ構造は、選択した方法によって大きく異なります。
前述したように、GeissのGPU Gems 3の記事は、GPUでMC地形を理解して実装するための非常に有益な出発点です(彼のMCアプローチは完全にGPUで実行され、少なくともSM4-GS対応のものが必要です)。
MCボクセルの密度データはボクセルのエッジ上にしかとどまらないため、従来のMCはシャープエッジフィーチャを保持せずにボリュームの輪郭を描く場合があります。密度情報は、ボクセル内の任意の場所に配置された3Dポイント(QEFミニマイザー)と各コーナーの記号として表されるため、DCにはこの欠点がありません。
一方、MCは生成されたすべての三角形が対応するボクセルに囲まれているため、自己交差する面の影響を受けませんが、DCは生成された面間の交差を防ぐために追加の計算が必要です。DCの作成者は、アルゴリズムの改良バージョンでこの問題に対処しました。
http://www.cs.wustl.edu/~taoju/research/interfree_paper_final.pdf
http://www.cs.berkeley.edu/~jrs/meshpapers/SchaeferWarren2.pdf
このフェローは、自己交差を回避するための凸/凹分析に基づいた、よりクリーンなアプローチを提案しています。彼は、エッジの方向を維持するために、より優れたクワッド分割ルールも使用しています。
http://www2.mae.cuhk.edu.hk/~cwang/pubs/TRIntersectionFreeDC.pdf
Classic MCは、すぐに使用できる「クラックフリー」ではないため、無制限のoctreeで実行した場合、クラックパッチを適用する必要があります。DCはこの最後の問題に悩まされていません。
以下は、ほとんどのメッシュ抽出技術の非常に素晴らしく完全な調査です:http :
//www.cs.berkeley.edu/~jrs/mesh/
オクトツリー/ボクセルアプローチは本質的に「CSGフレンドリー」で、きちんと完全に「破壊可能な」ゲームレベル戦略の計画を容易にしますが、ゲームでこれをすべて実装する必要がある場合は、オクトツリーの深さもフラスタムにする必要があります-依存。
全体がメモリに収まるか、正しくストリーミングされる場合、データはAOのレンダリングと物理学/衝突の計算にも使用できます。