2013-06-04 54 views
3

雖然當我這樣做時,圖形輸出完全搞砸了,但是我嘗試了它的好奇心。我期待它崩潰因非法數學運算:爲什麼在着色器中反轉向量矩陣mult order是合法的?

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

Position是矢量,其他都是矩陣。

OpenGL是列主要的,這意味着你只能乘以一個矩陣右邊的向量。如果向量是一列,因爲內部維度不匹配,所以沒有數學方法將向量乘以矩陣的左側:4x1 * 4x4

那麼爲什麼我在嘗試時實際得到輸出? OpenGL實際上用矢量矩陣乘法做什麼?

+0

你可以看看這個問題的答案http://stackoverflow.com/questions/16893536/using-row-major-in-opengl-shader/16893778#16893778 – GuyRT

回答