Yaw、Pitch、Roll を指定して、「ワールド座標」で Front (または Look At)、Right、および Up ベクトルを生成できる関数が必要です。
私の特定のワールド空間では、原点 (0,0,0) から始めて、X は左側が正、Z は視聴者/原点から離れる方向が正、Y は上方向が正です。
たとえば、与えられた... (度単位の角度)
ヨー = 0、ピッチ = 0、ロール = 0、期待される出力は次のとおりです。
- フロント = (0.0,0.0,1.0)
- 右 = (-1.0,0.0,0.0)
- アップ = (0.0,1.0,0.0)
ヨー=90、ピッチ=0、ロール=0、期待される出力は次のとおりです。
- フロント = (1.0,0.0,0.0)
- 右 = (0,0,0.0,1.0)
- アップ = (0.0,1.0,0.0)
ヨー = 0、ピッチ = 90、ロール = 0、期待される出力は次のとおりです。
- フロント = (0.0,1.0,0.0)
- 右 = (-1.0,0.0,0.0)
- アップ = (0.0,0.0,-1.0)
ヨー = 0、ピッチ = 0、ロール = 90、期待される出力は次のとおりです。
- フロント = (0.0,0.0,1.0)
- 右 = (0.0,1.0,0.0)
- アップ = (1.0,0.0,0.0)
私が使用している言語は C++ です。この問題を解決するのが最も理にかなっていれば、喜んで glm を使用します。クォータニオンを介してそこにたどり着くことができれば、オイラー角からクォータニオンを取得する方法を説明する他のチュートリアルを見つけたので、その解決策でも問題ありません。