2

私は C++ でゲームを書いており、それぞれが独自の頂点バッファーを持つ多くの個別のメッシュで構成されるレベルを持っています。vmmlib (華麗な無料の gl compat. vector/matrix library ) を使用して錐台カラーを作成し、レベル内のすべてのメッシュの境界球に対してテストしています。悲しいことに、私のレベルは最大 800 のメッシュで構成されている可能性があり、フレームごとにそれらすべてを反復するのは遅いです。すべての反復ですべてのメッシュを確認する必要がないように、コードを最適化する最良の方法は何ですか? フラスタム内のバウンディング ボリューム?

4

3 に答える 3

4

はい、バウンディングオブジェクトが最適です。たとえば、ボットのようにシーン内を移動し、円柱を横にしないメッシュの場合は、適切なバウンディングボリュームを選択するように注意する必要があります。その他のメッシュは、立方体(軸)でより適切に表現されます。整列されているかどうか)。

次に、四分木または八分木を作成して、メッシュデータを階層的に分割します。

これは、屋外の錐台カリングに非常に適しています。

屋内では、スペースを仕切る壁がたくさんあるので、BSPが最適な方法です。それでも、10を超えるポリゴンを持つメッシュをボリュームバウンドする必要があります。

于 2008-10-07T18:04:02.693 に答える
3

バイナリ空間分割またはそのいとこであるQuadtree

于 2008-10-07T17:59:22.780 に答える
3

付け加えておきたいのは、最近はポータルが BSP よりも、または BSP と一緒に使用されることが一般的に好まれているということですが、元の投稿を編集するほどの評判はありません。

于 2008-10-10T22:34:03.010 に答える