1

私はプロジェクトとして3Dゲームエンジンを開発しています。シーン内の三角形/ポリゴンごとにスペース分割アルゴリズムを使用して、衝突を効率的に検出したいと思います。(詳細のプログラミングを開始する前に)現代のコンピューターゲームの典型的なスペース分割アルゴリズムの速度を知りたいだけです。私は動的なオブジェクトを持っているので、フレームごとにシーンを再パーティション化する必要があるかもしれないと考えています。それは可能であり、それでも妥当なフレームレートを達成できますか?回答にデータ(FPS、ポリゴン数など)を含めることができれば非常にありがたいです。それがあまりにも面倒な場合は、フレームごとに再パーティション化するのが妥当かどうかを教えてください。

どんな助けでもいただければ幸いです。

4

1 に答える 1

4

まず、CUDAを使用した広相衝突検出の章を読むことをお勧めします。さまざまな広位相衝突アルゴリズムの比較について説明します。パフォーマンスは、いくつかの重要な変数に依存します。最初の変数は、アルゴリズムがGPUアクセラレーションを使用して実装されているかどうかです。前に引用した記事には、フレームレートとオブジェクトの数に関するいくつかのベンチマークが含まれています。少なくとも、何が達成可能かについての良いアイデアが得られるはずです。

GPUアクセラレーションを計画していない場合は、スイープとプルーニングが最も簡単に実装できる方法の1つです。正確な数値はわかりませんが、オブジェクトが少なく、フレーム間でオブジェクトがあまり変化しない場合にうまく機能します。この状況では、O(n)のパフォーマンスがあります。実装は簡単なので、これはベースラインとして開始するのに適しています。

あなたが本当に真剣になっているのなら、私は本Real-TimeCollisionDetectionをお勧めします。衝突判定の手法を研究する際に使用しました。それは素晴らしいリソースでした。

于 2012-08-15T19:40:54.650 に答える