OpenGL でカメラを制御するクラスを作成しようとしています。カメラのピッチ ヨーとロールを変更するには、3 つの方法があります。メソッドは、追加する回転量として使用する float パラメータを受け取ります。
これらのメソッドのコードは、助けが必要な場所です。回転は Vector3 に格納されます。これまでのところ、私が持っているピッチ変更方法について:
void changePitch(float degrees)
{
float rads = MathHelp::degreesToRadians(degrees);
m_rotation.x += cos(m_rotation.y) * rads;
}
これは私が自分で得ることができる限りです。カメラは、x 軸を見下ろしているときではなく、z 軸を上または下に向けているときに、カメラが上下に見えます。z回転を追加してみました:
m_rotation.z += sin(m_rotation.y) * rads;
しかし、それはうまくいきませんでした。