基本的に、CPUからGPUにコヒーレントノイズを生成する必要をなくしたいと思います。そこから、ボクセルポイントの密度としてこのノイズを使用して、3次元の世界の地形も生成したいと思います。この後、これらの密度を取得して、世界の地形を表すポリゴン化(頂点を生成)したいと思います。
これで問題ありません。でも、リアルタイムで世界を動的に変形させたい。この時点に到達すると、頂点をCPUに戻して、衝突検出や、GPUではなくCPUに関与させたいすべてのゲーム計算などを実行しようとして問題が発生します。
だから問題は、どうすれば他のものの間の衝突に対処するために頂点のサブセットをCPUに戻すことができますか?
そしてもう1つの質問:頂点のセットを取得し、それらからGPUでインデックスを生成する簡単な方法はありますか?
これらのさまざまな目的でどのようなシェーダーを使用する必要があるのか、また混乱しています。密度を収集するためにピクセルシェーダーを使用し、頂点からの地形生成を処理するためにジオメトリシェーダーを使用して、どういうわけか動的変形を行うために頂点シェーダーを組み込む人々の話を聞きました。
C#4.0、.NET 4.0、およびXNA Game Studio 4.0を使用しています。