OpenGL系統設計-1.1什麼是OpenGL

來源:互聯網
上載者:User
1         OpenGL基礎1.1        什麼是OpenGL

OpenGL全稱為Open Graphics Language,意思是開放的圖形程式介面,是一種用於3D渲染和3D加入的跨平台標準,換句話說OpenGL是一種3D API,是3D加速卡硬體和3D圖形應用程式之間一座重要的溝通橋樑,其主要的目標是通過其提供的各種功能調用實現真實感的三維世界。在這個三維世界中,物體都是由點、線、面組成的集合。OpenGL通過固定的步驟將這些表徵物體的資料經過轉換最終顯示在電腦的螢幕上。

OpenGL支援的平台包括Windows、MaxOS、Linux和Unix。為了做到OpenGL宣稱的開放,SGI和DEC、IBM、Intel、微軟牽頭成立了OpenGL組織,該組織稱為OpenGL架構評審委員會(OpenGL Architecture Review Board - ARB),目前該組織包括SGI、IBM、Intel、HP、Apple、Dell、Sun、ATI、3Dlabs、Nvidia、Matrox、Evans&Sutherland等12個表決成員和Discreet、id Software、NEC、Quantum 3D、University of Central Florida、Intelligraphics、Micron、S3/Diamond Multimedia、Raven Software、SiS等20多個參與成員。OpenGL ARB每3個月召開一次會議,討論群組織需要處理的問題,OpenGL的發展等。

OpenGL的前身是SGI公司為其圖形工作站開發的IRISGL,1992年7月,SGI公司發布了OpenGL的1.0版本。隨後又與微軟公司共同開發了WindowsNT和Windows9x版本的OpenGL,從而使一些原來必須在高檔圖形工作站上啟動並執行大型3D圖形處理軟體,如Softimage3D等現在通過它也可以在普通的個人PC上使用。新的Windows作業系統Windows2000/2003、WindowsXP等均支援OpenGL。這樣使得一些優秀的3D圖形設計軟體如AutoCAD、3DSMAX、MAYA、TruSpace、LightWave 3D等均可以使用支援OpenGL的3D加速卡,極大提高了3D圖形的處理速度。

OpenGL也是在不斷髮展的,在2003年7月的SIGGRAPH2003上,OpenGL ARB發布了最新的OpenGL 1.5版本規範,該規範引入了一種新的著色語言OGLSL(OpenGL Shading Language)。OGLSL的開發目的,是使在多數平台上使用的大多數廠家的圖形卡能夠使用相同的進階著色語言。它將使開發商們能夠製作出由高度並行的新一代圖形硬體加速的種類繁多的圖形、映像和計算應用程式。它將稱為即將發布的OpenGL2.0的基礎。

關於OpenGL 1.5的應用,OpenGL ARB在聯合聲明中是這樣闡述的:“可以即時地以電影畫質渲染出轟動今夏的任何一部巨片中的電腦圖形情境,而不用花上幾個月去製作。汽車設計師可以設計出與照片別無二致的汽車造型;而噴氣式戰鬥機的訓練類比則不但好看,而且精確到無法辨認出類比情境與實物的區別。”

雖然在常規的電腦系統中應用沒有任何問題,但是在嵌入式系統中,受限於系統資源,OpenGL的應用就成了問題。為瞭解決這一問題,以開發API為宗旨的業內團體Khronos Group於OpenGL ARB發布OpenGL1.5的同一天發布嵌入系統用的2維/3維圖形規格OpenGL ES(OpenGL Embedded System) 1.0。另外Khronos Group還制訂了EGL 1.0規範,EGL 1.0中制定了在多種作業系統中安裝OpenGL ES的標準方法。作為OpenGL的子集,OpenGL ES 1.0隻需要50K的容量,大大減輕了系統的負擔。

早期的OpenGL純粹是一個3D API,這使得它在和微軟的DirectX競爭時面臨一個問題,即怎樣把音頻、視頻處理和OpenGL結合起來。OpenGL程式員需要自己來考慮處理這些問題,儘管這些問題並不難。但是OpenGL ARB仍然考慮到了這個問題,在2001年發布了OpenML 1.0(OpenGL Media Libraby)。作為OpenGL的擴充,OpenML負責處理有關音頻、視頻、回放等。OpenML的軟體環境讓多重格式的數字內容包括視訊、聲音及3D繪圖同時整合的工作變得較為容易。OpenML令人值得注意的一點是,使新產品的顯示、影像和音效卡更為豐富,就如同電視機頂盒在手提裝置上的應用。因此,比較而言,MEPG-4是提供視頻資料流的組件,而OpenML則是將視頻與豐富的3D顯示和音效結合在一起的粘合劑。OpenML也是跨平台的。

不過,直到SIGGRAPH2003,Khronos Group才發布了OpenML 1.0 SDK的alpha版本,該版本支援Windows和Linux,當然還有SGI的IRIX,OpenGL SDK 1.0的正式版本要到2004年中才會發布。

除了在常規電腦系統和嵌入式系統,OpenGL還可以應用到移動手持功能中,如PDA、手機等。為了將OpenGL發展稱為行動裝置的圖形規格標準,SGI和Sun在2003年7月就雙方的圖形處理技術達成合作,攜手開發OpenGL應用程式介面(API)的配套Java軟體。協助手機使用者下載下載遊戲、音樂和圖形應用程式等。兩家公司將合作開發API捆綁軟體,然後將新產品提交給Java Community Process和OpenGL ARB。將OpenGL與Java的能力結合起來,在一個通用平台應用環境中將高效能圖形串連到網路環境中,使用者可以享受到各種各樣的媒體、圖形或商業演出。新產品還可以協助程式開發人員開發出從手機到超級電腦均適用的軟體,遊戲開發人員開發的遊戲不但可能在手機上玩,還可以在台式電腦中玩。Sun還與Khronos Group合作實現OpenGL ES對J2ME圖形APE的支援。

讓OpenGL程式員高興的是,上面說的OpenML 、OpenML SDK、OpenEL都可以到KhronosGroup的官方網站免費下載使用。

在Windows98、Windows NT/2000中,使用的是OpenGL 1.1規範,這可以滿足多數應用,但是包括新的OpenGL 1.2~1.5的支援就只能通過顯卡廠商的驅動程式來支援了。如果想得到OpenGL新特性,就需要升級自己的顯卡驅動程式。當然,越新的顯卡預設支援的OpenGL版本也越高。

提到OpenGL,就不能不提微軟,微軟公司在軟體行業的實力實在在強大了。作為OpenGL ARB的創始成員,微軟對OpenGL的態度是曖昧的。雖然在壓力下微軟選擇了在Windows中支援OpenGL,但是這種支援是不徹底的。當然,這也和微軟的目標有關。因為微軟也想控制這一領域,正如它在其他領域作的那樣,它不可能全力支援一個和自己產品有競爭的標準。雖然,Windows的GDI和WinG都不能成為3D哪怕是2D圖形API的標準,但是微軟仍然有能力開發出一個DirectX來和OpenGL抗衡。

為了專註於自己的DirectX,微軟於2003年2月宣布退出OpenGL ARB。雖然微軟宣傳它仍然會繼續支援OpenGL,但是可以預料,兩個標準之間在未來會處於持續競爭的狀態。

此後,OpenGL從1.0發展到3.0,DirectX也發展到最新的11.0,雙方可說是各擅勝場。不過當OpenGL ES橫空出世後,基本已經成為移動終端的3D標準。在移動通訊發展如此迅猛的階段,可以說OpenGL算是領先了半步。

-------------------------------------------------------------------------------------------------
聲明:本文可在網路媒體自由傳播,但必須保留作者的聲明資訊及來源,平面媒體的引用必須徵得作者的同意。
另外,作者也歡迎同仁進行交流。
QQ: 851473402
Email: LotusRachel@gmail.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.