功能性
功能性
新API裏的一些特點包括有:
陰影語言。一種獨立於硬件以外的OpenGL 2.0陰影語言,與OpenGL 1.3有緊密的整合。現有的狀態機又增長了可編程單元,將可增設OpenGL 1.3固定式的替代功能。新的着色器可自動紀錄現有的OpenGL狀態(例如進行一個簡單的光源轉換而無須覆寫參數管理)。它以C爲架構,加上容易理解的 向量和矩陣類型,並也將整合一些Renderman功能。這套語言會虛擬資源管線,所以對大多數的程序設計師來講便不用去考慮資源管理。未來也會有相同形 式、供頂點着色與片斷着色之用的語言,並加上一些特別內建的功能和數據限定。
頂點處理。其功能在於照明、材質和幾何圖形的彈性。頂點程序將取代部分的OpenGL管線,像是:頂點轉換;正規轉換;正規化和尺寸重設; 照明;彩色材質應用程序;色彩強化;材質座標產生;以及材質座標轉換。然而,頂點着色並沒有辦法取代下列功能:透視投影與視覺座標對應;柱狀及用戶剪裁;隱 面消除;原始組合;雙面照明選擇;多重模式處理;多邊形平移;或多邊形模式。
片斷處理器。其功能爲材質存取、插值計算與像素運算彈性。Open GL 2.0增長了片斷處理器能力,將取代下列功能:內插值頂點數據運算;像素縮放;材質存取、縮放和偏向;材質應用;色表查找;霧化;旋繞;以及OpenGL 管線中的色彩矩陣部分。然而片斷着色並無取代下列功能:OpenGL的陰影模型;直方圖;覆蓋度;極值;像素全部權測試;像素封裝和解封裝;剪裁;點 刻;alpha測試;深度測試;模印測試;alpha混色;邏輯運算;抖動;或平面屏蔽。
封裝和解封裝運算。封裝和解封裝運算的目的在於將「應用像素」轉換成一致性的像素羣數據流。在數據傳送到解封裝處理器前先運用未封裝儲存模 式。解封裝處理器和應用對OpenGL傳輸有關,而封裝處理器則負責OpenGL對應用傳輸這部分,二者都跟複製運算沒有關係。繪圖子系統內的複製只使用 片斷處理器。
OpenGL現有的「像素傳輸」運算是由片斷處理器所支持,而非封裝∕解封裝處理器。片斷處理器具備縮放、偏向、查找、旋繞等所需的能力。此外由 於ARB並不要求多餘的硬件能力,封裝∕解封裝處理器於是便無需具有其它可編程單元所搭載的浮點運算能力。主要的運算能力爲偏移、屏蔽以及轉換爲∕自浮點 數 - 那些和像素數據的應用對OpenGL轉換有關的功能。在封裝解封裝處理器中運行的程序必需和目前的片斷着色兼容,並和片斷處理器搭配運行以實現 OpenGL像素管線。
數據移動與內存管理。爲了增進性能,數據移動量必需減至最低。視覺處理的主要數據爲:頂點數據(色彩、正規、位置、用戶定義等)以及圖像數 據(材質、圖像、像素緩衝區)。創建與管理OpenGL對象的機制大致上就是定位、連結與經過相同接口控制對象,並運用頂點數組、圖像、材質、着色、顯示 清單以及像素緩衝區。
目前來講,OpenGL的內存管理仍是黑箱做業;這也就是說全部的事項都會自動處理。所以應用程序無需瞭解究竟運算結果爲什麼、運算要花多少時間、 無需去控制要配置多少儲存空間以及這些對象要放在何處。所以,目前版本的OpenGL對於對象什麼時候要被複制、搬移、刪除或封裝(片斷整理)是沒法加以控制 的。此外也不清楚內存資源的虛擬化。這樣的結果是目前OpenGL僅有至關有限的能力去「要求一塊空間」,並且只能爲了預存材質才能進行這項要求。下圖所 示爲目前OpenGL內存管理的組織架構。

OpenGL 2.0將提供更好的內存管理,並提供應用程序對數據移動的控制能力,提供更好的頂點處理能力、將數據抓進OpenGL的更有效方法,OpenGL對象的直接存取。此外,內存管理功能能消除爲增進數據流量而產生的數據備份,以大幅提高性能。