私は 3D グラフィック エンジンを作成していますが、要件の 1 つは、Valve のソース エンジンのように動作するロープです。
したがって、ソース エンジンでは、ロープのセクションは方向軸に沿って回転してカメラの方を向くクワッドです。そのため、ロープのセクションが +Z 方向にある場合、Z 軸に沿って回転し、顔がカメラに面するようになります。カメラの中心位置。
現時点では、ロープのセクションが定義されているので、素敵な曲線のロープを作成できますが、現在、方向ベクトルに沿ってロープを回転させるマトリックスを構築しようとしています。
このビルボード テクニックに基づいて、ビルボード スプライトをレンダリングするためのマトリックスが既にあり ます 。
私のロープは複数のセクションで構成されており、各セクションは 2 つの三角形で構成される長方形です。上で述べたように、位置とセクションを完璧にすることができます。多くの問題を引き起こしているのは、カメラの方を向く回転です。
これは OpenGL ES2 であり、C で記述されています。
私は Doom 3 のビーム レンダリング コードを Model_beam.cpp で調べました。そこで使用されている方法は、行列を使用するのではなく、法線に基づいてオフセットを計算することです。そのため、C コードで同様の手法を作成しました。少なくともそれは機能します。 、今必要なだけ機能します。
したがって、これも理解しようとしている人のために、カメラの位置に対してロープの中間点の外積を使用し、それを正規化し、それをロープの幅に掛けてから、構築するときに結果のベクトルの + または - 方向に各頂点をオフセットします。
これは完璧ではないので、さらに助けていただければ幸いです。
ありがとうございました