glMatrixMode()函數的參數,這個函數其實就是對接下來要做什麼進行一下聲明,也就是在要做下一步之前告訴計算機我要對“什麼”進行操作了,這個“什麼”在glMatrixMode的“()”裡的選項(參數)有3種模式: GL_PROJECTION 投影, GL_MODELVIEW 模型視圖, GL_TEXTURE 紋理.如果參數是GL_PROJECTION,這個是投影的意思,就是要對投影相關進行操作,也就是把物體投影到一個平面上,就像我們照相一樣,把3維物體投到2維的平面上。這樣,接下來的語句可以是跟透視相關的函數,比如glFrustum()或gluPerspective();在操作投影矩陣以前,需要調用函數:glMatrixMode(GL_PROJECTION); //将目前矩陣指定為投影矩陣然後把矩陣設為機關矩陣:glLoadIdentity();然後調用glFrustum()或gluPerspective(),它們生成的矩陣會與目前的矩陣相乘,生成透視的效果;如果參數是GL_MODELVIEW,這個是對模型視景的操作,接下來的語句描繪一個以模型為基礎的适應,這樣來設定參數,接下來用到的就是像gluLookAt()這樣的函數;若是GL_TEXTURE,就是對紋理相關進行操作順便說下,OpenGL裡面的操作,很多是基于對矩陣的操作的,比如位移,旋轉,縮放,是以,這裡其實說的規範一點就是glMatrixMode是用來指定哪一個矩陣是目前矩陣,而它的參數代表要操作的目标,GL_PROJECTION是對投影矩陣操作,GL_MODELVIEW是對模型視景矩陣操作,GL_TEXTURE是對紋理矩陣進行随後的操作。切換目前矩陣.如.要使用透視(3D).那麼先要設定透視投影glMatrixMode(GL_PROJECTION); //切換到投影矩陣.//...設定透視投影設定完成後開始畫圖,需要切換到 模型視圖矩陣 才能正确畫圖.glMatrixMode(GL_MODELVIEW);// 畫一個物體A (看起來是3D的),// 如這時候需畫一個 2D效果 的 物體A,那麼又需要透視投影glMatrixMode(GL_PROJECTION); //切換到投影矩陣..// ..設定正交投影//..設定完成,切換回模型視圖矩陣.....glMatrixMode(GL_MODELVIEW);// 再畫一個物體A (看起來是2D的)// 如從頭到尾都是畫3D/2D, 隻需初始化時設定一次.// 如果有交替,那麼就需要glMatrixMode() 切換// 因這樣設定很煩人,是以又有glPushMatrix() 儲存目前矩陣