ゲームSEと数学SEの両方でこの質問をしましたが、反応はあまり心強いものではありませんでした。それで、もう少しひねりを加えて、もう一度尋ねました。
meshで定義された地形があります。また、地形全体に散在する他の多くの多角形面があり、それらは地形の上、下、または地形を切り開いている可能性があります。これらの顔はプラットフォームと考えることができます。
以下のスクリーンショットは、私の言いたいことを明確にするはずです。滑らかに見えますが、実際にはすべてのメッシュが小さな要素 (数 > 10k) を組み合わせて構成されているため、滑らかに見えます。明らかに切り離された領域はプラットフォームです。
私の質問は、プラットフォームと他のプラットフォーム/地形を接続する平面をどのように生成できますか? 一連の傾斜面を生成するルールは次のとおりです。
- どちらの方向が最初に地形/隣接するプラットフォームに衝突するかに応じて、それらは上または下に移動する可能性があります.
- 平面の生成規則は、平面がプラットフォームの端から始まり、z 軸に対して 45 度上下に一定の長さ移動すると、z 軸に対して 0 度移動するというものです。 、繰り返します。したがって、飛行機のいくつかのポイントで障害物にぶつかるまで、一連の断片的な飛行機になります。
- アルゴリズムは、平面の生成と平面の生成のみに焦点を当てる必要があります。レンダラー (opengl など) に結び付けたくないので、自分でレンダリングできます。
要するに、実際には一連の階段や段ボール紙のようなものであり、特定のメッシュと接触するまで、空間のある点から上下につながる一連の「平面」を生成したいと考えています。
物理シミュレーションでよくある衝突検出の問題のようですね。この問題を解決するために使用できるゲーム/物理ライブラリはありますか?
私はアニメーションを行っていないので、フレームごとの更新とそれらすべてのものは私には関係ないことに注意してください。これが、 bulletのような既存のゲーム物理ライブラリの使用をためらう理由です。私に関連するのは、既存のライブラリを使用して、上記のルールに従ってこれらの接続面を生成する方法です。