どうして判定するcuboids点ではなく繰り返し処理に渡してくれるので安心です。
-
18-09-2019 - |
質問
アcuboidsその位置とサイズが指定された最小値と最大 x
, y
や z
座標(その並列に主軸)。
例えばい、以下の3cuboids:
10.5 <= x <= 39.4, 90.73 <= y <= 110.2, 90.23 <= z <= 95.87 20.1 <= x <= 30.05, 9.4 <= y <= 37.6, 0.1 <= z <= 91.2 10.2 <= x <= 10.3, 0.1 <= y <= 99.8, 23.7 <= z <= 24.9
いるので、次の点など (25.3,10.2,90.65)
)あるので、迅速に判断する直方体(s)私はいますか?
解決
一わかりやすく加速するこのクエリは以下の構築 均一なグリッド データ構造と呼ばれる箱として、前処理ステップ:を入れて n x n x n
(3d)グリッド上でシーンのためのすべての細胞のグリッドのポインタを格納すべてのcuboids交差する。現在、クエリーの点で直接計算する細胞で、均一なグリッド、そしてチェックのみcuboidsに関連付けられている細胞はすべてのcuboids.
によってはできなスペースはどのように変化させる直方体のサイズはこの方法のような非常に効率がいいですが難しい場合があります。を選択するには良い n
解像度の加速のために十分な大量の細胞。そこでまいをより適応的なパターンを可能にするような空間 kd-木 (kd-木wikipedia), は、基本的にはバイナリの木々パーティショニングの空間軸を揃えて面:見例がなめらかになることから赤色面分割のボックスの二つの緑色の小さな部品、その後のブルー---
クエリを使用kd-ツリーが初のトラバースの葉のkd-ツリーのエリの位置がトレージエンジンはインデックスのcuboidsる。 その他の空間分割データ構造 オプションです こちらの.
別のオプションを利用する バウンディング量階層, は、グループのオブジェクトをまとめて、バウンディング量、およびそのグループのバウンディング量を大型のバウンディング量など...。得階層のバウンディングます。これらの対応をより良くシーンで楽を扱うシーンが物体の移動も考えて設定した空間分割仕事ができる。になっ詳細は この書籍の章の.
他のヒント
あなたは「空間分割法」と「衝突検出」の領土にverging。基本的なアイデアは、基本的に、彼らは小ぎれいなボックスに占めるスペースを分割し、ツリー型構造、に直方体を格納しています。各直方体を占める「空間の一部」についての決定は、ツリーstrucutreへの挿入時に行われます。
オクトリ上のGoogle検索を行います。
Efficently 3D空間を分割し、そのスペースに含まれるオブジェクトは、コンピュータ科学のかなり大きな部分です。主にコンピュータゲームの開発に使用されます。アルゴリズムのいくつかは考慮オブジェクトは仕切り空間の間を移動する時間係数を、すなわち取る。