読み込まれたモデルの VertexBuffer を読み取り、その頂点 (およびインデックス) から Planes のインスタンスを生成する XNA で (やや) 高度な衝突検出 (およびスライド応答) に取り組んできました...より客観的にカスタム Face 構造体が作成されました実際の面を表す 1 つのメイン プレーンと、その境界を表すさらに 3 つのプレーンがあります。
このように、BoundingSphere が 3 つの頂点ごとに生成された BoundingBox と交差すると、面のメインの平面との別の交差がチェックされ、その後、衝突が三角形の内部で発生していることを確認します。 BoundingSphere が外側にないことを確認してください。
これまでのところ、複雑なメッシュで興味深いほど良い結果が得られました。変換プロセスで衝突メッシュを台無しにすることなく、リアルタイムで拡大縮小、回転、移動できました...しかし、私の問題は、面が生成される部分にあると考えています。メッシュを構成する三角形の半分で、実際にはほぼ完璧な結果しか得られません。これは、メッシュがどのメッシュであるかにもよります。いくつかのランダムな幾何学的形状では、その問題はありませんでした.
Face 構造体内の 1 つまたは複数の平面の法線の一部が反転しているようで、その結果、BoundingSphere はその特定の三角形との衝突がまったくないと報告しています...
どこかに何か小さなものがなければなりません...そうでなければ、球体が機能する三角形とそのような精度で衝突することはありません...
今のところ、この小さな大きなものを機能させたいだけです。それから、最適化を考えます...