今日的電子產品非常重視視覺表現,這也讓OpenGL(Open Graphics Library)被普遍支援使用。OpenGL是一個跨平臺/跨編程語言應用程式介面(API),主要用於生成2D/3D圖像,特別適合電子遊戲的開發、虛擬實境、CAD等應用。
|
2D/3D的跨平台API:OpenGL BigPic:581x633 |
OpenGL目前支援的編程語言有Java、Fortran 90、Perl、Pike、Python、Ada和Visual Basic。平臺支援方面,由於OpenGL的核心API沒有視窗系統、音頻、列印等輸入設備的概念,亦沒有和硬體有關的軟體介面,所以能夠進行跨平臺開發,如Windows、Unix、Linix、MacOS等,許多顯示裝置廠商也提供了高效實現的支援(依賴圖形加速硬體)。
從OpenGL 1.0 到OpenGL 4.3已經大約有二十年的時間。1992年由SGI公司發佈1.0版本的OpenGL時,令當時大型的圖形處理軟體都可以在家用電腦運行,而之後的版本更新都加入了不少新功能,重點更新如下:
- OpenGL 1.1:提高色彩指數、頂點位置、顏色、紋理座標、法線、多邊形邊緣標識的傳輸速度。
- OpenGL 1.5:推出了OpenGL Shading Language(GLSL),並且加入隱蔽查詢、頂點Buffer Object、非乘方紋理、Shadow功能等。
- OpenGL 2.0:改為由3Dlabs推出OpenGL新標準,並且增強shader的擴展特性。
- OpenGL 3.0:GLSL版本更新至1.3,加強圖形硬體的支援和增加32bit浮點紋理和渲染緩存、頂點矩陣物件和全幀緩存物件功能等。
- OpenGL 4.2:應用于支援DirectX11的硬體,如Radeon HD 5000/6000系列顯示卡。
- OpenGL 4.3:在shader的運算上加強GPU的平行處理能力等等。
OpenGL的功能可以分為七大類:
- 建模:OpenGL內置不同的繪製函數,如基本類型如點、線和三維類型如球、錐、多面體。
- 變換:圖形處理技巧的一種,包括基本變換(平移、旋轉等)和投影變換(如平行投影、透視投影等)。
- 顏色模式:二種模式,分別是RGBA模式和顏色索引。
- 光和材質設置:光設置方面有環境光、漫反射光、鏡面光和輻射光。材質方面是以光反射率設置的。
- 紋理映射:加強3D物體的細節度,從而看下去更加逼真。
- 圖像顯示:除了基本的圖像讀寫外,可以於圖像中加入融合、反走樣、運動模糊、深度暗示和霧的特效。
- 雙緩存動畫:雙重的緩存稱為前臺和後臺,後臺緩存計算場景和生成畫面;前臺緩存顯示後臺緩存完成後的輸出畫面。
(參考資料:Designspark)
白皮書下載:
OpenGL 4.3 Core Profile Specification
OpenGL 4.3 Compatibility Profile Specification