OpenGL 3.0代號為“Mount Evans”,它在OpenGL2.0的基礎上支持很多新特性,如優化硬件可編程能力、頂點數據流動傳輸等,并加入了與微軟的DirectX 10相似的功能,如增加幾何著色渲染、整數指令集等……
優化硬件可編程能力
可編程渲染器可以帶來許多過去用固定渲染器無法得到的復雜圖像效果和三維環境的真實感。在有大量水滴、煙霧以及動態陰影的環境畫面中,可編程渲染器將會起到重要的作用。同時,圖形硬件的可編程能力也擴展了硬件加速的直接繪制算法,提高了它的交互性能和圖像質量。OpenGL 3.0在前作的基礎上針對最新的GPU技術對這項功能進行了增強和優化。
頂點數據流傳輸
在OpenGL 3.0中,頂點數據被分割成不同比特率的數據流。由于頂點數據改用數據流的形式傳送,內部頂點數據傳輸總線也可以支持很大的突發數據傳輸速率。這樣顯示芯片可以更從容地處理那些突發的大規模場景特效(例如下雨,爆炸,粒子噴發等等)。同時,OpenGL 3.0在頂點數據流的傳輸過程中也擴充了多種數據類型,可以使游戲開發人員通過不同的形式更詳細地對一個頂點進行描述。
同時,一個經過運算之后的頂點緩存數據可以反復再進行若干次的循環調用,這樣就可以通過一個相同物體的基本范例創造超過驅動程序限制的對象。例如,游戲開發人員若要創造一個森林的場景,可以首先使用低比率的數據流構建一棵樹的基本框架。然后再用高比率的數據流包含每一棵真實的樹木特征模型,這包括樹葉的模型、樹枝的模型、樹干的模型等等。將整個一棵樹定義成一個元素。最后再使用基于低比率數據流中的元素ID,循環處理生成整個廣茂的森林。
幾何著色渲染
像DirectX 10一樣,OpenGL 3.0這次也引入了幾何著色渲染功能,它可以為3D場景創建幾何對象,利用它來生成多種效果。幾何著色渲染可完成陰影錐、毛皮、魚鰭、程序幾何、細節、位移效果和計劃植被等等細致圖形渲染。由于著色。在GPU上運行,因此沒有占用CPU資源,從而將CPU資源釋放出來以供其他任務使用。有效提升模板陰影特效、動態立方體貼圖和位移貼圖的執行效率,亦可將多余的頂點數據除去,增加顯示核心的運算效率。
整數指令集
OpenGL 3.0首次引入了整數指令集功能。我們知道,3D圖形運算是基于大量浮點指令的。浮點是不精確數據類型,當尋值數據與紋理數據不符合時,可以采用近似值和多個數據計算的內插值代替,對圖形最終畫面沒有影響,速度也比整數指令集要快。因此,GPU的基礎恰好與CPU相反,是以浮點指令而不是整數指令集為主。此前,著色器處理的所有東西都需要依靠浮點運算完成。對大多數的圖像處理來說,這種處理方式是沒有問題的,但進行非內插式內存搜索時(比如對頂點緩存器進行定位索引時)這種浮點運算處理方式就存在很大的問題。而openGL 3.0中引入整數運算將有許多好處,比如進行動態/靜態分支預測、頂點緩存定位、通用內存尋址方面,浮點是無法進行精確計算的,而整數指令集則不存在這樣的問題。
總的來說,OpenGL 3.0是在OpenGL ZX的基礎上進行了巨大改進,并為了順應未來的發展趨勢,引入了DirectX 10的特色功能。這一方面是Khronos Group接手ARB組織后,加快OpenGL發展步伐的表現,另一方面也是因為DirectX的快速發展,使OpenGL從被借鑒者變成了借鑒者,吸收了DirectX中的一些先進的地方和優點,痛下決心,作出如此重大的改變。當然,OpenGL 3D的出現也可以讓眾多喜歡OpenGL的玩家松一口氣了。至少未來它們還會有很長的一段時間要并駕齊驅。