ゲームプログラマになる前に覚えておきたい技術でビュー変換行列を求める方法が書かれていた。さらにソースコードではアップベクターを指定した場合の方法も解説されていた。
アップベクターを指定した場合はz軸との外積を取って、それをx軸としてやればよい。そしてそのx軸と視線方向ベクトルの外積がy軸となる。
なるほど。では、かなり意地悪な場合だけどアップベクターがz軸と同じ場合はどうなってしまうんだろう。外積の結果は(0,0,0)となり、正しく求められなくなってしまう。でも、そもそもアップベクターとz軸が同じ状態ってどんなんだろう。上方向がz軸。それってただ真下を向いているだけか。
そもそもアップベクターは首を左右に傾けるような状態を表すものだから、z軸と同じになるようなことはないか。