4

これを行うと、グラフィック出力が完全にめちゃくちゃになりますが、好奇心から試してみました。違法な数学演算のためにクラッシュすることを期待していました:

 //    gl_Position=Projection*Modelview*Position; <- normal, works fine
 //    gl_Position=Position*Modelview*Projection; <- bad output, but still runs fine

Positionはベクトル、その他は行列です。

OpenGL は列優先です。これは、行列の右側でのみベクトルを乗算できることを意味するはずです。内側の次元が一致しないため、ベクトルが列の場合、行列の左側にベクトルを乗算する数学的な方法はありません: 4x1 * 4x4

では、試してみると実際に出力が得られるのはなぜですか? OpenGLは実際にベクトル行列乗算で何をしていますか?

4

1 に答える 1