私はしばらくの間、宇宙シミュレーションに取り組んできました。最初は、ソフトウェア ラスタライザーを備えた独自の 3D エンジンを使用していました。
しかし、テクスチャを実装する時期が来たときにあきらめました。しばらくしてから再開し、代わりに Opengl (SDL) を使用して 3d モデルをレンダリングしています。
しかし今、私は別のレンガの壁にぶつかっています。
適切な回転の仕方がわかりません。宇宙シミュレータなので、fligsim と同様のコントロールが必要です
使用して
glRotatef(angleX, 1.0f, 0.0f, 0.0f);
glRotatef(angleY, 0.0f, 1.0f, 0.0f);
glRotatef(angleZ, 0.0f, 0.0f, 1.0f);
モデル (宇宙船) を最初に左に 90 度回転させてから「上」に回転させると、
正しく動作しません。代わりに転がります。
ここに私の問題を説明する画像があります。
これに対抗するためにいくつかのトリックを試しましたが、どういうわけか何かが足りないと感じています. シミュレーター スタイルの回転の例を見つけるのがほとんど不可能であることも役に立ちません。
そのため、例、リンク、および 3D モデル (宇宙船、飛行機など) を回転させる理論を探しています。
向きに 3 つのベクトル (左、上、前) を使用する必要があるのは、スラスターからの加速度や、回転 (向き?) とともに変化するものからの加速度などを計算する必要があるためです。ロケットエンジンのような方向。
私は数学が苦手で、解決策を視覚化しようとすると頭痛がするだけです