歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 《OpenGL超級寶典》學習筆記

《OpenGL超級寶典》學習筆記

日期:2017/3/1 9:52:09   编辑:Linux編程

OpenGL超級寶典 第4版 中文版PDF+英文版+源代碼 見 http://www.linuxidc.com/Linux/2013-10/91413.htm

第一章 OpenGL的介紹

用二維的方式觀察3D的世界,仍然是3D世界,因為其能夠觸發大腦判斷它的深度。這個效果與它的顏色的改變、紋理、光照、著色以及各種不同的顏色強度(由於光照的原因)。接下來就學習基本概念。

透視:是指直線之間的角度,正是它產生了三維的幻覺。

顏色和著色:通過增加顏色來創建實心物體,更加具有真實感。在立方體的每一面塗上不同的顏色可以幫助我們識別這個物體的各個不同的面。

光照和陰影:通過未每個面添加適當的陰影,不僅可以使這個立方體看上去更像是一個實心物體,而且好像在某個角度被光所照射。

紋理貼圖:圖形硬件所處理的幾何圖形越多,它所需要的渲染時間也就越多。所以就想了一個辦法,用更為簡單的圖形代替。通過一幅圖像向向一個多邊形提供額外細節的技巧稱為紋理貼圖,所提供的圖像稱為紋理,而紋理中每個單獨的元素稱為紋理單元。最後,在一個物體的表面上拉伸和壓縮紋理單元的過程叫過濾。

霧:給場景中的物體添加模糊效果,提供了令人信服的寬敞開放的空間幻覺。

混和(blending)和透明:混和是屏幕上顏色或物體的組合。它類似於雙重曝光照片所實現的效果,也就是兩幅圖像形成一種層次感。

抗鋸齒:由於圖像是由不連續的像素所組成的,因此我們可以在屏幕上看到鋸齒效果。通過細心地將這些直線與背景顏色相混合,我們可以消除鋸齒邊緣,這種混合技巧稱為抗鋸齒(antialiasing)。

學習了3D的基本概念,接下來了解3D編程的基本原則。

1. 立即模式和保持模式,兩種不同的方法進行3D圖形的底層API編程,OpenGL同時支持這兩種方法。

2. 坐標系統,有2D笛卡爾坐標,坐標裁剪,視口,3D笛卡爾坐標。

3. 投影:從3D到2D,用於創建幾何圖形的3D坐標將投影到一個2D表面。投影分為兩種一種是正投影,另一種是透視投影。

總結:本章教了我們通過透視、隱藏直線消除、顏色、著色和其它技巧來創建深度幻覺,並學習了兩種把3D投影到2D屏幕的方法。

第二章 使用OpenGL進行繪圖的過程,包括合成和選擇顏色、清除屏幕、繪制矩形並設置視口和裁剪區域,對圖像進行縮放,使它與窗口的大小匹配。了解各種OpenGL數據類型以及生成OpenGL程序所需要的頭文件。OpenGL狀態機奠定了許多操作的基礎;擴展機制使我們能夠訪問自己所使用的硬件驅動程序所支持的所有OpenGL特性,不必考慮所用的開發工具;學習如何檢查OpenGL錯誤,確保程序中並未出現任何非法的狀態改變或渲染命令。

1. 管線(pineline)這個術語用於描述一種過程。

2. OpenGL是API而不是編程語言,簡單、清晰,並且容易為廠商所擴展。數據類型都以GL開頭,隨後是它們對應的C數據類型。函數名約定,<函數庫前綴><根命令><可選的參數數量><可選的參數類型>。

3. OpenGL狀態機,是一個抽象的模型,表示一組狀態變量的集合。OpenGL使用了一種狀態機來追蹤所有的OpenGL狀態變量。許多狀態只是簡單的打開或關閉。例如glEnable(GL_LIGHTING),打開光照效果。另外,還提供了一種可以保持和恢復的機制,使用堆棧原理,命令如下void glPushAttrib(GLbitfield mask); void glPopAttrib(GLbitfield mask);

更多詳情請繼續閱讀第2頁的內容:http://www.linuxidc.com/Linux/2013-10/91414p2.htm

Copyright © Linux教程網 All Rights Reserved