OpenGL是個專業的3D程序接口,是一個功能強大,調用方便的底層3D圖形庫。OpenGL的前身是SGI公司為其圖形工作站開發的IRIS GL。IRIS GL是一個工業標准的3D圖形軟件接口,功能雖然強大但是移植性不好,於是SGI公司便在IRIS GL的基礎上開發了OpenGL。OpenGL的英文全稱是“Open Graphics Library”,顧名思義,OpenGL便是“開放的圖形程序接口”。雖然DirectX在家用市場全面領先,但在專業高端繪圖領域,OpenGL是不能被取代的主角。
OpenGL是個與.硬件無關的軟件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之間進行移植。因此,支持OpenGL的軟件具有很好的移植性,可以獲得非常廣泛的應用。由於OpenGL是3D圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。但是,通過一些轉換程序,可以很方便地將AutoCAD、3DS等3D圖形設計軟件制作的DFX和3DS模型文件轉換成OpenGL的頂點數組。
在OpenGL的基礎上還有Open Inventor、Cosmo3D、Optimizer等多種高級圖形庫,適應不同應用。其中,Open Inventor應用最為廣泛。該軟件是基於OpenGL面向對象的工具包,提供創建交互式3D圖形應用程序的對象和方法,提供了預定義的對象和用於交互的事件處理模塊,創建和編輯3D場景的高級應用程序單元,有打印對象和用其它圖形格式交換數據的能力。
OpenGL的發展一直處於一種較為遲緩的態勢,每次版本的提高新增的技術很少,大多只是對其中部分做出修改和完善。1992年7月,SGI公司發布了OpenGL的1.0版本,隨後又與微軟公司共同開發了Windows NT版本的OpenGL,從而使一些原來必須在高檔圖形工作站上運行的大型3D圖形處理軟件也可以在微機上運用。1995年OpenGL的1.1版本面市,該版本比1.0的性能有許多提高,並加入了一些新的功能。其中包括改進打印機支持,在增強元文件中包含OpenGL的調用,頂點數組的新特性,提高頂點位置、法線、顏色、色彩指數、紋理坐標、多邊形邊緣標識的傳輸速度,引入了新的紋理特性等等。OpenGL 1.5又新增了“OpenGL Shading Language”,該語言是“OpenGL 2.0”的底核,用於著色對象、頂點著色以及片斷著色技術的擴展功能。
OpenGL 2.0標准的主要制訂者並非原來的SGI,而是逐漸在ARB中占據主動地位的3Dlabs。2.0版本首先要做的是與舊版本之間的完整兼容性,同時在頂點與像素及內存管理上與DirectX共同合作以維持均勢。OpenGL 2.0將由OpenGL 1.3的現有功能加上與之完全兼容的新功能所組成(如圖一)。借此可以對在ARB停滯不前時代各家推出的各種糾纏不清的擴展指令集做一次徹底的精簡。此外,硬件可編程能力的實現也提供了一個更好的方法以整合現有的擴展指令。
目前,隨著DirectX的不斷發展和完善,OpenGL的優勢逐漸喪失,至今雖然已有3Dlabs提倡開發的2.0版本面世,在其中加入了很多類似於DirectX中可編程單元的設計,但廠商的用戶的認知程度並不高,未來的OpenGL發展前景迷茫。