2

物理シミュレーションを行うシーン内のスペースをセグメント化するために、軸に沿ったバウンディング ボックスの octree を使用しています。近距離にある小さなオブジェクトと同様です。実際には、シーンには数キロしか離れていませんが、数キロメートル離れているため、これは多くの空のスペースを意味します。基本的に、バウンディング ボックスを保存するために 2 ギガの RAM を浪費しています。空のセクターの場合。実際に何かを含むセクターにのみメモリを割り当てたい (AABB へのポインターにするため) が、それは octree を再作成するためにフレームごとに数千の割り当てを意味します。プールを使用する場合割り当てによる速度低下に対抗するために、アプリケーションに 2 ギガの RAM を割り当てていることを意味します。これを達成する他の方法はありますか?

4

1 に答える 1

0

Loose Octrees(多くのオブジェクトを処理するため)またはAABBなどのより適応性の高いシステムを調べます-スペース全体ではなく、各オブジェクトの周りに構築されたツリー。全体的なAABB(ルート)を使用して一般的な距離/衝突を実行し、各オブジェクトの下のツリーを使用してより細かい衝突を取得できます(最終的には、その細かい解像度が必要な場合は光線と三角形の交差テスト)。AABBツリーの唯一の欠点は、オブジェクトが回転した場合にツリーを再構築する必要があることです(AABBツリーを適応的にスケーリングおよび変換できます)。

于 2013-03-04T19:19:34.227 に答える