OpenGl學習筆記4之通用的視圖變換函數(glLoadIdentity,glMatrixMode)

來源:互聯網
上載者:User

標籤:opengl   glmatrixmode   glloadidentity   opengl編程指南   矩陣   

通用的變換函數

在介紹四種變換的具體使用方法時,先簡單介紹下情境變換中用到的通用函數。

函數原型:

Void glLoadIdentity (void)

作用:把當前矩陣設定為單位矩陣,這個函數在每次情境變換之前都很重要,因為絕大多數變換都是把當前矩陣與我們指定的矩陣相乘,然後把結果再設定為當前矩陣(前面已經介紹過:我們的變換實質就是一個4*4的矩陣,不同的變換有不同的參數,我們只需要調用opengl的函數即可,不用直接操縱矩陣)。所以我們在變換之前,把當前矩陣清空成單位矩陣,否則當前矩陣中的參數是上一次變換留下來的(當前矩陣會一致儲存上一次變換時的狀態,這是由於opengl特有的狀態機器制導致的),說了這麼多,大家就記住每次變換之前先調用這個函數,這是一個良好的習慣。

 


函數原型:

void glMatrixMode(GLenum mode)

作用:mode 指定哪一個矩陣堆棧是下一個矩陣操作的目標,可選值: GL_MODELVIEW、GL_PROJECTION、GL_TEXTURE.

glMatrixMode設定當前矩陣模式:

GL_MODELVIEW,對模型視景矩陣堆棧應用隨後的矩陣操作.

GL_PROJECTION,對投影矩陣應用隨後的矩陣操作.

GL_TEXTURE,對紋理矩陣堆棧應用隨後的矩陣操作.

說白了,就是我們在進行變換之前,要顯式的告訴opengl,我們接下來要進行哪種變換(修改哪種矩陣)。不同的參數對應我們不同的變換。在預設情況下,該函數修改的矩陣式模型視圖矩陣,並且預設情況下,這三個矩陣均為單位矩陣。


此函數與glLoadIdentity()一同使用,這兩個函數一般情況下就是捆綁使用:進行變換時,先說明要對哪種矩陣操作。再清空矩陣。

void init (void) //繪製之前進行初始化一系列動作{   glClearColor (0.0, 0.0, 0.0, 0.0);   //將螢幕顏色清除為白色   glMatrixMode(GL_PROJECTION);  //設定作業矩陣為投影矩陣,投影矩陣以後會詳細介紹   glLoadIdentity();//將矩陣清空為單位矩陣   glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); //定義正交平行的視景體。 一般用於物體不會因為離螢幕的遠近而產生大小的變換的情況。此函數以為會詳細的講。}


OpenGl學習筆記4之通用的視圖變換函數(glLoadIdentity,glMatrixMode)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.