錐台カリングの最適化
-
05-07-2019 - |
質問
iはC ++でゲームを記述しており、それぞれが独自の頂点バッファーを備えた多数の個別のメッシュで構成されるレベルを持っています。 vmmlib(華麗な無料gl互換ベクター/マトリックスライブラリ)を使用して錐台カラーを作成し、レベル内のすべてのメッシュの境界球に対してテストしています。残念ながら、私のレベルは最大800メッシュで構成でき、各フレームの反復は各フレームで遅くなります。反復ごとにすべてのメッシュを見る必要がないようにコードを最適化する最良の方法は何ですか?錐台内のボリュームの境界?
解決
はい境界オブジェクトは行く方法です、例えば、ボットのようなシーンを動き回ってシリンダーを横たわないメッシュが最適なボリュームである場合、適切な境界ボリュームを選択する際には注意が必要です。立方体(軸が整列しているかどうか)。
次に、四分木または八分木を作成して、メッシュデータを階層的に分割します。
これは、屋外の錐台選別に非常に有効です。
屋内では、スペースを仕切るための壁がたくさんあるため、BSPが最適な方法です。それでも、10個を超えるポリゴンを持つメッシュをボリュームバインドする必要があります。
他のヒント
バイナリスペースパーティションまたはその従兄弟 Quadtree 。
BSPに比べて、またはBSPに関連するポータルが一般的に好まれるようになりましたが、元の投稿を編集するのに十分な評判がありません。
所属していません StackOverflow