2

オブジェクト間の衝突を非常に一般的に処理する方法が必要な three.js で何かに取り組んでいます。cannon.js は必要なプリミティブをサポートしているため、cannon.js を使用することを考えていましたが、物理演算のオーバーヘッド (特定の敵に当たった弾丸を検出するためなど) が常に特に必要な/必要があるわけではありません。私自身の一般的な衝突検出エンジンを書くといううさぎの穴を掘り下げることに興味がないので、多くの場合に衝突検出に使用します。

基本的に私が求めているのは、オブジェクト/オブジェクト オブジェクト/地形の衝突をテストし、オブジェクトが衝突しているかどうかを判断するために、cannon.js または他の JavaScript 物理ライブラリを使用する比較的簡単な方法があるかどうかです。貫通深度、衝突の法線などを取得できれば、さらに良いでしょう。

three.jsコードとしっかりと効率的に統合したいのであれば、physicaljsを使用したほうがよいでしょうか? それは私が必要とするものも持っているようですが、メインページのデモからはパフォーマンスがかなり悪いように見えました.

ありがとう!

4

1 に答える 1

1

開発者の Chanderprall (私はそれが正しかったと思います) は、Physijs を THREE を使用した物理演算用の使いやすいプラグインにしました。彼はそれを上に構築し、実験的なブランチを持ってammo.jsますcannon.js(残念ながら、今のところプリミティブな形状しかサポートしていません)。これは通常のように機能すると思います。

個人的には、ライブラリ全体は、オブジェクトが動的な位置を持っている場合など、リアルタイムの物理を扱っている場合にのみ使用する必要があると思います。物理エンジンを使用せずに衝突を検出したいだけの場合はTHREE.Raycaster、メッシュかどうかを検出できる を使用してください。 (バウンディング ボックスを使用して計算)intersectObjectsメソッドを使用して交差しています。巧妙なコードを使用して、オブジェクトが別のオブジェクト内にどのくらい入ったかを検出するようにすばやく適応させることができます。

http://webmaestro.fr/collisions-detection-three-js-raycasting/

于 2015-11-16T23:23:58.640 に答える