5

固定グリッド サイズのアプローチでブロード フェーズの衝突検出を実行しようとしています。したがって、各エンティティの位置: (x,y,z) (float 型のそれぞれ) について、エンティティが存在するセルを見つける必要があります。次に、すべてのセルをハッシュ テーブルに格納し、それを反復処理します。 (もしあれば) 衝突を報告します。

グリッドセルの位置: (int型) (Gx, Gy, Gz) => (x / M, y / M, z / M) ここで、M はグリッドのサイズです。

セルができたら、キーが (Gx、Gy、Gz) に基づく一意のハッシュであり、値がセル自体であるハッシュ テーブルに追加したいと思います。今、私は良いハッシュ関数を思いつかないので、それについて助けが必要です.

誰かが私に良いハッシュ関数を提案してもらえますか?

ありがとう

4

4 に答える 4

1

誰かがまだこれに興味を持っている場合は、ここで機能する解決策を見つけました。

http://www.gamedev.net/community/forums/topic.asp?topic_id=567378

于 2010-04-11T03:35:30.700 に答える
0

この種のベクトルに対する私の好ましいハッシュ関数は、各コンポーネントのビットを異なる定数で回転させ、それらを XOR することです。

これは非常に高速で、ビット ローテーションは衝突を減らし、できるだけ多くのキー スペースが使用されるようにするのに役立ちます。

于 2010-08-16T12:23:44.173 に答える
0

ここにあなたが見ることができるいくつかの参考文献があります. Warren の論文では、ハッシュ アルゴリズムについて詳しく説明しています。

並列ハッシュ Oct-Tree N-body アルゴリズム

移植可能な並列粒子プログラム

于 2011-11-14T18:56:04.710 に答える
0

グリッド アプローチでは、グリッド ボックスの境界付近で問題が発生します。代わりに BSP ツリーを使用しないのはなぜですか?

于 2010-04-11T03:48:05.270 に答える