OpenGL學習建議遵循以下步驟:?
1,線性代數的基礎知識不需要很深入。大學的線性代數復習壹下就夠了,尤其是矩陣變換部分。?
2、C++開發語言,壹定要很熟練。?
3.《計算機圖形學》應該是大學課本,這也是所有圖形學的基礎知識。
4.《3D遊戲編程大師技巧》等基礎入門教材,基本將基礎知識與如何使用openGL API結合起來,讓讀者開始開發。同樣,還有類似. github.io/這樣的網站,都是很好的入門資料。
5.《openGL編程指南》俗稱“紅皮書”,openGL Super 5俗稱“藍皮書”,但這兩本書更適合作為查詢手冊,妳需要知道用哪壹本。
6.進壹步的學習是了解詳細的流水線處理流程和著色器語言開發。
OpenGL主要屬於計算機圖形學,屬於比較專業的領域。
目前3D遊戲開發是應用最廣泛的壹塊,大公司主要使用openGL開發遊戲引擎。即使是現在,很多基於U3D開發的手遊,也需要熟悉基本的openGL流水線流程和壹些著色器知識。
其次,在壹些專業領域會有大量的模擬,做各種濾鏡和特效也需要openGL知識,但這些方面也需要壹些圖像處理的知識。
彭格爾設計
OpenGL規範描述了用於繪制2D和3D圖形的抽象API。雖然這些API可以完全在軟件中實現,但它們是為大多數或所有硬件加速而設計的。
OpenGL的API定義了幾個可以被客戶端程序調用的函數和壹些命名的整數常量(比如常量GL_TEXTURE_2D對應的十進制整數是3553)。
雖然這些函數的定義表面上類似於C編程語言,但它們是獨立於語言的。所以OpenGL有很多語言綁定,包括:JavaScript (API)綁定的WebGL用於基於OpenGL ES 2.0的Web瀏覽器中的3D渲染);c類:WGL、GLX和CGL;;c . iOS提供的綁定;Android提供的Java和c綁定。
OpenGL不僅是語言獨立的,而且是平臺獨立的。該規範沒有說明如何獲取和管理與OpenGL上下文相關的內容,而是將這些內容作為細節提供給底層窗口系統。出於同樣的原因,OpenGL純粹專註於渲染,不提供輸入、音頻和窗口相關的API。
OpenGL是壹個不斷發展的API。Khronos集團將定期發布新版本的OpenGL規範,新版本通過擴展API支持各種新功能。每個版本的細節都是由Khronos集團的成員決定的,包括顯卡制造商、操作系統設計師以及像Mozilla和Google這樣的通用技術公司。
除了核心API所需的功能,GPU廠商還可以以擴展的形式提供額外的功能。擴展可能引入新的函數和新的常數,並可能放松或取消現有OpenGL函數的限制。
然後擴展分兩部分發布:包含擴展函數原型的頭文件和作為制造商的設備驅動程序。廠商使用擴展來公開定制的API,而不需要其他廠商或Khronos集團的支持,這大大增加了OpenGL的靈活性。OpenGL註冊表負責所有擴展的收集和定義。
每個擴展都與壹個短標識符相關聯,該標識符基於開發公司的名稱。比如英偉達的標識符就是NV。如果多個供應商同意使用相同的API來實現相同的功能,那麽使用EXT標識符。
這種情況更進壹步。Khronos集團的架構審查委員會(ARB)正式批準了該擴展,因此它被稱為“標準擴展”,標識符為ARB。
第壹個ARB擴展是GL_ARB_multitexture。
OpenGL每個新版本中引入的函數,尤其是ARB和EXT類型的擴展,通常是由幾個廣泛實現的擴展函數組成的。