私は3Dプラットフォームのビデオゲームのための衝突検出システムを書いています。すべての基本がうまくいきます。しかし、登場人物が急斜面のポリゴンに着くと、ポリゴンの斜面を滑り降りる必要があります。私はこれをほとんど行うことができますが、衝突したポリゴンの傾きに一致する下向きベクトルを計算する方法を見つけることはできません。私はこれを含む多くのフォーラムを検索しましたが、答えを見つけることができません。3Dポリゴンの下り勾配ベクトルを計算するにはどうすればよいですか?
各ポリゴンは、ワールド空間内の3つの頂点(x、y、z)で構成されています。
また、各ポリゴンのサーフェスの法線もあり、ドットと交差のプロダクトに精通しています。
面法線のドット積のアークスと60度のように地面からポリゴンの傾きの角度を与えるワールドアップベクトルを取ることで、単純な角度値を計算することもできます。角度が60度よりも急であれば、私はキャラクターが斜面を滑り降りるべきだと決めました。しかし、ポリゴンの勾配に一致する下向きのベクトルが必要なので、時間の経過とともにその位置を適用して滑り落ちることができます。
私は勾配ベクトルが表面法線に対して垂直であるべきだと考えますが、私が持っている情報をもとにそれを計算する方法はわかりません。任意の助け
おかげで...あなたは自分の三角形の中心を見つけ、最低の頂点にいるからベクトルを取得し、プレイヤーの速度のベクトルの独立をしたい場合は
+1私は過去にこのようにしました。ダウンベクトルの大きさを重力と同じに設定すると、正規化されていないnonUnitAnswerベクトルはダウンスロープ方向に作用する重力の成分になります。これは有用な値です。 –