OpenGL學習隨筆 七

2021-04-24 02:59:00 字數 829 閱讀 6967

很多時候,知識難以常握是因為我們只知其表不知其裡,或者說不了解歷史就不能理解現在。所以在學習到一定程度之後一定要去分析和實現opengl,之後才能真正理解和掌握opengl。

每天在不斷學習新的內容時,我都會選擇重寫測試**,而不是在之前的**上修改,原因是想找出一些思維定勢和盲區。今天嘗試用push和pop來寫reshape時,就發現自己理解還不到位,

static void reshape(int w, int h)

static void init()

static void display()

原以為整個opengl中只有乙個矩陣堆疊,投影變換之後要恢復矩陣,結果什麼也顯示不出來。以為是一開始沒有裝入單位矩陣所致,於是又在init中加了glloadidentity,但還是沒有圖象。

而實際上opengl中有多個矩陣堆疊,模型視點變換,投影變換,紋理均有自己的矩陣堆疊,且每個堆疊的棧底初始值可能都是單位矩陣。像上面這樣寫沒有影象的原因是原本投影變換的結果被存於投影變換的棧頂,而多寫了一句glpopmatrix之後,棧頂被彈出剩下的只是單位矩陣了。

今天遇到的另乙個問題是紋理尺寸必須為2次冪。在mesa跑得好好的程式居然在非mesa環境貼圖失敗,後來終於在redbook第4版的乙個角落裡找到這樣一句話,「width和height的值都必須是2 的冪次」,然後在第6版的同乙個角落裡又增加了一句「opengl 2.0取消了該限制」,當場就要抓狂了。

以上兩個問題都是由於想拋開書本自己寫兩個程式以檢測是否真的理解了之前學的知識,結果寫兩個程式出來兩個問題。結果在預料之中,這就是理論和實踐的差距,看書只能知道個大概,要真正掌握(特別是細節內容)必須要動手,再次證明計算機是個實踐性極強的科學,i love it!

OpenGL學習隨筆 十三

因為工作原因,有一段時間沒玩opengl了。今天開始重新拾起。這一年來接觸了些opengl es的chip provider,感覺大家都開始發力了,mobile 3d產業要爆發了。之前一直在看1.x系列,現在從2.x開始,雖然1.x還有不少內容沒玩過。2.x系列最大的變化就是引入了可程式設計pipe...

OpenGL學習隨筆 四

久違了,我的blog。這幾天被透視投影卡住了,雖然到現在也沒有完全搞明白,但也還是應該階段性總結一下。3d影象在2d平面顯示要經過以下幾個步驟,1.資料配置環節,配置頂點 顏色等資料,確定了物體的大小和外觀。2.指定模型視點變換引數,將物體到3d場景中,並確定我們的觀察點,也就是人眼的位置。3.指定...

opengl 入門學習 隨筆五

今天開始opengl的學習,下面上第乙個程式!void mydisplay int main int argc,char argv 整個程式表示顯示乙個矩形 這裡有幾個概念稍微介紹一下 1 glclear 表示清除背景,也就是說我們在黑板上清除的效果是顯示全黑,在白紙上清楚顯示的是全白 2 glut...