GL_MODELVIEW矩陣詳解

在opengl中,視圖和模型變換是在一個矩陣中進行控制的,這個矩陣就是GL_MODELVIEW_MATRIX,可以使用glGetFloatv函數來獲取這個矩陣,而我們所要使用glTranslate*, glRotate*,glScale* 等操作均最後反映到這個矩陣的變化中,所以瞭解這個矩陣的構造對於靈活運用OpenGL比較重要。
變換矩陣在內存中的存放方式如下:
 
 m[0] m[4] m[ 8] m[12]
 
m[1] m[5] m[ 9] m[13]
 
m[2] m[6] m[10] m[14]
 
m[3] m[7] m[11] m[15]
 
可以看出,OpenGL是以列序來存放這個矩陣的,位於矩陣上方的3*3矩陣是旋轉矩陣,可以用來控制剛體的旋轉和尺度變化,如下:rotate,scale.
 
 m[0] m[4] m[ 8]
 
m[1] m[5] m[ 9]
 
m[2] m[6] m[10]
 
而左上角的3*1矩陣是用來控制剛體的平移的--translate。就是m[12],m[13],m[14]這三個值,分別控制X,Y ,Z方向的平移。所有16個值組成一標準的齊次矩陣。
發佈了68 篇原創文章 · 獲贊 15 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章