私はいつかスペースシムに取り組んでいました。 最初は自分の3Dエンジンにソフトウェアラスタライザを使用していました。スペースシミュレーター/ゲーム用の宇宙船モデルを回転する
しかし、テクスチャを実装する時間が間に合うと、私は諦めました。 今私はもういつか始めて、今は3DモデルをレンダリングするためにOpenGL(SDL)を使用しています。
しかし、今私は別のレンガの壁に当たった。
正しい回転方法を理解できません。その後、 私はモデル(宇宙船)を回転させる場合、私は
glRotatef(angleX, 1.0f, 0.0f, 0.0f);
glRotatef(angleY, 0.0f, 1.0f, 0.0f);
glRotatef(angleZ, 0.0f, 0.0f, 1.0f);
または類似を使用してflighsim
と同様のコントロールをしたいスペース・シミュレーターなので、
が正常に動作しない最初の90度左にとそれを "上に"回転させます。 代わりにロールします。
ここに私の問題を説明するイメージがあります。
私はこれを試してみて、対抗するために、いくつかのトリックを試みたが、どういうわけか私は何かが足りない感じ。 シミュレータのスタイルの回転の例がほとんど見つからないことを助けるものではありません。
私は、例、リンク、3Dモデルを回転させる理論(宇宙船、飛行機など)を探しています。
3つのベクトル(左、上、前方)を向きに使うべきでしょうか?また、スラスタからの加速度や回転(向き?)やモデルから変化するものを計算する必要がありますロケットエンジンのような方向の視点。私は数学とソリューションはちょうどあなたがここで使用したいとしているどのような頭痛
私はついにそれを裂く! 私は、モデルの向きを表す行列を使用します。 上のキーを押すと、回転行列を作成する関数が呼び出されます。これは、xの周りを希望の量だけ回転させ、それをモデルの向き行列に掛けます。 – kvasan