經過本節,咱們來簡要了解一下openGL。html
(1)OpenGL概述:編程
openGL(Open Graphics Library)是個專業的圖形程序接口,定義了一個跨編程語言、跨平臺的編程接口規格。它用於三維圖像(二維的亦可),是一個功能強大,調用方便的底層三維圖形處理庫,也是該領域的工業標準。windows
計算機三維圖形是指將用數據描述的三維空間經過計算轉換成二維圖像並顯示或打印出來的技術。網絡
(2)OpenGL的圖形庫函數編程語言
OpenGL不是一種編程語言,而是圖形硬件的軟件接口,一種API(應用程序編程接口)。OpenGL的圖形庫函數封裝在動態連接庫OpenGL32.DLL中,開發基於OpenGL的應用程序,必須先了解OpenGL的庫函數。函數
OpenGL函數命令方式十分有規律,每一個庫函數均有前綴gl、glu、aux,分別表示該函數屬於OpenGL核心庫、實用庫或輔助庫: 工具
1) OpenGL核心庫函數:100+個,以gl做爲前綴;用來創建各類各樣的幾何模型、進行座標變換、產生光照效果、進行紋理映射、產生霧化效果等全部的二維和三維圖形操做。性能
2) OpenGL實用庫函數:43個,以glu做爲前綴;實用函數庫是比核心庫更高一層的函數庫;spa
3) OpenGL輔助庫函數:31個,以aux做爲前綴;如下介紹以GLUT庫爲例。操作系統
因爲OpenGL是一個圖形標準,是獨立於任何窗口系統或操做系統的,在OpenGL中沒有提供窗口管理和消息事件響應的函數,也沒有鼠標和鍵盤讀取事件的功能,因此在編程輔助庫提供了一些基本的窗口管理函數、事件處理函數和簡單的事件函數。這類函數以」aux」做爲前綴。值得一提的是,目前AUX編程輔助庫已經很大程度上被GLUT庫取代了。
4) Windows專用庫函數(WGL):6個,以wgl做爲前綴;
5) Win32API函數(WGL):5個,無前綴。
6) GLUT表明OpenGL應用工具包(OpenGL Utility Toolkit),是一個與窗口系統無關的工具包。它做爲AUX庫的功能更強的替代品,用於隱藏不一樣窗口系統API的複雜性。GLUT的子程序的前綴使用」glut」。
(3)OpenGL與DirectX的區別:
不管是OpenGL仍是DirectX,它們自身通常並不實現處理多媒體相關的操做(譬如顯卡、聲卡、手柄輸入、多媒體流的網絡傳輸等等)的能力。它們是一個標準,要求硬件來知足,提供一個函數名,硬件來實現函數內容。經過它咱們能夠很是簡單而快速地調用硬件提供的各種服務。
1)DirectX的簡介:
DirectX是一種應用程序接口API,它可以讓以Windows爲平臺的遊戲或多媒體程序得到更高的執行效率,增強3d圖形和聲音效果,並提供設計人員一個共同的硬件驅動標準,讓遊戲開發者沒必要爲每一品牌的硬件來寫不一樣的驅動程序,也下降用戶安裝及設置硬件的複雜度。
2)OpenGL與DirectX的區別:
1.OpenGL 只是圖形函數庫;DirectX 包含圖形,聲音, 輸入,網絡等模塊。
2.單就圖形而論,DirectX 的圖形庫性能不如OpenGL。並且OpenGL穩定,可跨平臺使用,但OpenGL多須要顯卡支持。
3.DirectX僅能用於Windows系列平臺,包括Windows Mobile/CE系列以及XBOX/XBOX360。
3)建議:
作windows平臺上的遊戲,固然是DX,想跨平臺,想作科學計算程序,想作CAD,想作分佈計算,想作工業級應用,最好用OpenGL。
(4)參考文檔:
1)爲何你應該使用OpenGL而不是DirectX:http://www.cnblogs.com/Baesky/archive/2011/04/08/2009128.html
2)OpenGL與DirectX的區別:http://blog.163.com/xtdx888888@126/blog/static/2955727520083661133565/
3)OpenGL與DirectX:http://blog.sina.com.cn/s/blog_4cc16fc50100bx6m.html