日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 (

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 ( 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址如下:

http://blog.sina.com.cn/s/blog_70c3d9ed010122bp.html#cmt_56C57036-7F000001-15BB06C27-948-8A0

對于glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用雖然網上有很多的帖子,而且都試圖解釋得很詳細,但是效果總是越說越黑,模棱兩可的。今天我就簡單滴說幾句,言簡意賅,希望大家隨便看看之余能把這些個問題搞清楚了。glLoadIdentity()的作用就是把矩陣堆棧中的在棧頂的那個矩陣置為單位矩陣,好讓之前的任何變換都不影響后面的變化。打個比喻,glLoadIdentity()的作用就是把原來做好的橡皮泥模型重新又變成了橡皮泥,這樣你前面做的模型的樣子就不會影響后面的模型,后面你怎么捏它就怎么像,比如glLoadIdentity()之后你調用了平移函數glTranslatef(1.0, 0.0, 0.0),那么堆棧的棧頂首先是4×4的單位矩陣,然后因為glTranslatef便成了(1.0, 0.0, 0.0,1.0)(注意坐標在OpenGL中的存儲都是四位數的),以后的變換就將基于這個坐標!

?

?

glPushMatrix(),glPopMatrix()這兩個函數是搭配使用的,就用紅寶書中的例子給大家解釋一下glPushMatrix()的作用是把矩陣壓入棧中保存起來,留著以后再用,就好象把子彈壓入槍膛一樣。但這個壓子彈不是簡單滴丫,它是把和彈夾的最頂的那顆子彈一模一樣的子彈壓入彈夾。假如說彈夾的子彈從下往上裝的子彈各不相同(大家不必糾結于此,現實生活中是不是這樣并不重要),依次為A1型子彈,B2型子彈,C3型子彈glPushMatrix()的作用就是現時打造一顆C3型子彈并把它壓入彈夾,于是彈夾最頂端的兩顆子彈是一樣的,都是C3型的子彈,隨后所作的平移變化旋轉變換等都是在最上面那顆C3子彈上所作的,并不影響下面的那顆C3子彈,直到glPopMatrix()把最上面的那顆C3子彈發射出去,讓下面的那顆C3子彈成為彈夾最頂上的那顆。

總結

以上是生活随笔為你收集整理的通俗解释glLoadIdentity(),glPushMatrix(),glPopMatrix()的作用 (的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。