2

衝突検出に関する文献はたくさんありますが、ほとんどの手法にかなり精通しているので、少なくともそのかなりの部分を読んだことがあります。ただし、しばらくの間、私にはわかりにくいことがあります。StackOverflowを使用すると、多数の優秀な頭脳に一度にアクセスできるため、本棚を掘り下げる前に、まずここで質問したいと思います。

この時代では、CPUではなくGPUに委任される作業が増えており、多くの場合、これは良いことです。たとえば、新しいジオメトリを作成するためのジオメトリシェーダー、または(少し新しいですが、それでも非常に魅力的な)頂点シェーダーがあり、そこに多数の頂点を通過でき、そこからエレガントなものが生まれます。これらのプリミティブはグラフィックハードウェアにのみ存在するため、私が検討していたことは、これらのプリミティブとの信頼性の高い衝突検出をどのように実行するのでしょうか。ある種の非常に単純化されたメッシュが頂点シェーダーで置き換えられていると仮定しましょう(具体的な問題はありません。アイデアをもっと試していますが、ジオメトリシェーダーについてはまだ深く理解していません)。

これまで私が考えてきたのは、適切な角度からパスを分離し、シェーディングを多かれ少なかれオフにし、おそらく低解像度のメッシュで、2番目のプリミティブの内側(面を内側に反転)をレンダリングしたいメッシュと一緒にレンダリングすることです。メッシュに対してテストし、オクルージョンクエリを実行します。メッシュが完全に隠れている場合、交差はありません。もちろん、これには2番目のプリミティブが凸である必要があります。

どういうわけか、この種のテストは、プリミティブの数が増えるにつれて(大部分を直接カリングできる場合でも)非常に高価になると感じています。他の誰かが別のアイデアやテクニックを持っていますか?私はdirectxよりもopenglとcgに精通していますが、directxにいくつかの例があれば、openglの対応物を理解できると思います。

すべてのアイデアに感謝しますので、ブレインストーミングしてください。:)

4

1 に答える 1

2

GPUGems2のDanHornの記事「GPGPUアプリケーションのストリーム削減操作」はまさにあなたが望むもののようです。すべての章と同様に、オンラインで無料で入手できます

于 2009-01-18T18:06:51.673 に答える