跨越藩籬,超越極限:最新加速引擎技術掃描
Win 7引入全新2D加速引擎
1. 2D引擎加強文字顯示
在大家常用的文字、圖像領域,一些2D加速引擎被廣泛應用。眾所周知,在實際應用中,液晶顯示器會因顯示分辨率不能實現點對點而出現字體發虛的問題,因此在Windows XP/Vista中,微軟引進了ClearType技術,讓字體像素邊緣的RGB各個次像素都發光,通過增強桌面字體邊緣的平滑度來使字體更清晰。而在Windows 7中,微軟繼續對ClearType進行了改進,它通過引入基于ClearType字體渲染的新型API(應用程序編程接口),特別加強了GPU在文字顯示中的作用。
提到ClearType就不得不說WDDM(Windows圖形驅動標準)。以往的字體顯示基本不需要顯卡參與,而在新系統中這種局限正被改變。當然,要想讓操作系統能顯示出Aero效果或更好地實現ClearType,就需要借助GPU,而此時顯卡驅動支持WDDM是必需的。由于Windows 7和Vista都是能直接利用GPU的操作系統,其桌面顯示以及渲染可在操作系統和GPU間通過WDDM來協調并直接交互——如果顯卡性能強勁,那么應用程序會有比較出色的視覺效果;如果顯卡性能一般,那么WDDM就會自動調低應用程序的顯示效果。
由于Vista在市場里的失勢,Vista里的WDDM 1.0也并沒有在實際應用中獲得很大反響。而Windows 7里的新版WDDM 1.1相比老版帶來了更好的穩定性和性能,可為用戶提供更好的Direct2D硬件加速,以及二維幾何圖形、位圖、文字抗鋸齒等應用,并讓GPU的多任務處理在Windows中成為可能。
2. 硬件加速實現抗鋸齒
通過Windows 7中集成的API,GDI(圖形設備接口)將直接在顯卡的顯存中進行渲染,這將極大地降低系統內存的消耗并讓圖形呈現速度加快。同時,為了強化2D效果,Windows 7還帶來了新的API——Direct2D和DirectWrite。
Direct2D是即時渲染2D圖形的硬件加速API,它建立在DX10.1的MSAA多重采樣抗鋸齒技術基礎上,它在二維幾何圖形和文本方面有著較高的性能和質量,而且Direct2D還可在GDI和Direct3D之間進行互操作。
DirectWrite是一種新的文本渲染系統,用于在D3D/D2D目標上渲染ClearType文本,配合Direct2D利用GPU進行加速。它增加了子像素渲染、子像素加X軸方向/Y軸方向抗鋸齒渲染兩種渲染模式,而傳統GDI的渲染就只有X軸方向抗鋸齒渲染。DirectWrite可提供更高質量的文本呈現,具有獨立分辨率的字體輪廓,可更好地提升桌面2D圖像的渲染效果,帶來硬件加速文字顯示和抗鋸齒效果。

DirectX 11的3D加速引擎
1. DX 11處處優化 GPU
Windows 7最大的特點之一還在于引入了新一代的API——DirectX 11。它除了集成有Direct2D、DirectWrite之外,還有DXGI(DirectX圖形基礎構造),用于管理設備和GPU資源以及提供DirectX和GDI之間的交互性。同時還整合了用于渲染3D圖形的Direct3D 10/10.1和Direct3D 11,后者更新,支持下一代GPU。
通過DirectX 11中的Compute Shader(計算著色器)將使GPU具有更好的并行處理能力。特別是在擁有多個GPU的系統中,DirectX 11中的Multi-Threading多線程技術,可在API底層對多個GPU進行優化,減少對驅動和游戲渲染模式的依賴,也有助于提升多個GPU并聯的工作效率,降低驅動開發難度及性能損失。而在渲染效率方面,TessellATIon(鑲嵌化技術)讓程序員只需要簡單勾繪一個輪廓,便能自動對其進行貼圖拆嵌,可大大提高渲染速度以及開發效率。
2. 統一通用計算標準
在DirectX 11中,最重要的還是Compute Shader,它是一種包含線程間數據通信、隨機訪問和流式I/O操作單元等組件的3D圖形加速引擎,能加快和簡化圖像后期處理。眾所周知,Intel、AMD、NVIDIA、IBM等廠家紛紛推出了自己的通用并行計算平臺或理論,如NVIDIA的CUDA、AMD的GPGPU、Stream等,為此展開了激烈的競爭。但是這種標準林立的情況無疑將加大程序或程序員適應不同廠家硬件的難度,增大軟件開發的工作量。為此,在使用更廣泛的DirectX圖形領域,Compute Shader的面世將改變這種亂戰局面。
程序員可以直接將GPU作為并行處理器加以利用,將復雜的數據結構交給Compute Shader后,就能直接運行各種通用算法。GPU不僅具有3D渲染能力,也具有其他的加速運算能力,這就是我們說的GPGPU概念和物理加速運算,而且多線程處理技術使游戲更好地利用了系統的多個核心。為此,程序員可通過Compute Shader加速引擎來實現像素渲染引擎無法實現的高級特效,如A-Buffer緩存取樣技術,可以很大程度增加抗鋸齒以及無規則透明度的性能。還可以帶來更先進的Deferred Shading(延遲著色)技術、卷積運算、FFT(快速傅里葉轉換)以及區域求和表算法。
3. Compute Shader增強GPU應用
Windows 7內置的GPU加速功能基于DirectX 11中的Compute Shader通用計算技術,在一段海洋Demo中,實時計算大規模波浪動態效果需要龐大的計算量,如果用傳統的模擬算法來實現這一效果,渲染速度將難以讓人接受。而使用Computer Shader技術,API將能借助GPU強大的浮點計算能力進行加速計算,便能輕易完成大量的FFT轉換,極大地提高波浪生成速度以及畫面質量。據測試表明,借助Compute Shader,DirectX 11可以提供最多三倍于DirectX 10.1的加速性能,特別是在基于屏幕空間的環境光遮蔽(SSAO)中,它可以使用更少的工作流程來處理大量數據流,并減輕紋理單元讀取數據的工作壓力。