2011-02-28 18 views
1

地形の衝突を行う方法をチュートリアルで検索しましたが、.rawファイルを使用していました。私は.xを使用しています。しかし、私は彼らと同じことをすることができると思います。彼らは、オブジェクトのx、y、zの値を取って、地形内のすべての単一の三角形に対してそれをチェックすることができます。それは理にかなっていますが、遅くなるようです。それはちょうどすべての単一の三角形に対するチェックをピッキングするのが遅いのと同じです。
これを行うにはより速い方法がありますか?
更新
私の地形は平らではありません。境界線を使用するのであれば、境界線を使用します。DirectX 9地形の衝突

答えて

0

衝突を検出するのにかかる時間を大幅に短縮する一般的な方法の1つは、スペースをoctreeに編成することです。これにより、特定のノードで衝突が発生する可能性があるかどうかを非常に迅速に判断できます。一般に、ゲームエンジンでこれらの種類のタスクを実行する方が簡単です。

+0

ハイトマッピングされた地形の場合、実際にクワッドツリー以上は必要ありません:) – Goz

+0

@Goz良い点;) –

1

前回私はこれをやって、Bulletライブラリを使いました。一般的な三角形メッシュや高さフィールドを含む様々なシナリオに合わせて最適化された、さまざまなものから選択することができるcollision shapesがあります。物理なしでライブラリの衝突ルーチンを使用することができます。