Compute Shader

Compute Shader

Compute Shader是一種技術,是微軟DirectX 11 API新加入的特性,在Compute Shader的幫助下,程式設計師可直接將GPU作為並行處理器加以利用,GPU將不僅具有3D渲染能力,也具有其他的運算能力,也就是我們說的GPGPU的概念和物理加速運算。多執行緒處理技術使遊戲更好地利用系統的多個核心。

基本介紹

  • 中文名:Compute Shader
  • 隸屬:DirectX 11 API
  • 性質:軟體
  • 特徵:執行緒間數據通信
特徵介紹
Compute Shader主要特性包括執行緒間數據通信、一整套隨機訪問和流式I/O操作基本單元等,能加快和簡化圖像和後期處理效果等已有技術,也為DX11級硬體的新技術做好了準備,對於遊戲和應用程式開發有著很重大的意義。
在DirectX 11以及CS的幫助下,遊戲開發者便可以越過複雜的數據結構,並在這些數據結構中運行更多的通用算法。與其他完整的可程式的DX10和DX11管線階段一樣,CS將會共享一套物質資源(也就是著色處理器)。
在硬體支持Compute Shader之後,相應的硬體必須要比當代硬體更加靈活,因為在運行CS代碼的時候,硬體必須支持隨機讀寫、不規則列陣(而不是簡單的流體或者固定大小的2D列陣)、多重輸出、可根據程式設計師的需要直接調用個別或多個執行緒、32k大小的共享暫存空間和執行緒組管理系統、粒數據指令集、同步建構以及可執行無序IO運算的能力。
Compute Shader可發揮的地方很多,遊戲中可以使用GPU進行光線追蹤、A-Buffer採樣抗鋸齒、物理特效、人工智慧AI等遊戲特效運算。在遊戲之外,程式設計師也可以利用CS架構進行圖像處理、後期處理(Post Process)等。
Texture Compression(紋理壓縮)是一種和虛擬紋理類似的紋理管理方法,在很多情況下具有6倍以上壓縮比例的紋理壓縮都可以極其有效地減小紋理本身的大小,從而避免紋理傳輸和管理方面的瓶頸,並且可以獲得更加精細的畫面,由此看來其效率比虛擬紋理要高。
DirectX 11加入了兩種新的壓縮算法——BC6和BC7。其中,BC6是專門針對HDR圖像設計的壓縮算法,壓縮比為6:1;而BC7是專門為LDR(低動態範圍)圖像設計的壓縮算法,壓縮比為3:1。
 上圖則是BC7針對LDR紋理的壓縮與傳統的BC3紋理壓縮對比。可以看出傳統的BC3紋理壓縮損失了大量的紋理細節,壓縮之後的效果也很不好。而採用BC7算法壓縮後的紋理,丟失的細節很少,效果也非常好,這就是改進紋理壓縮的魅力。
BC7對LDR紋理壓縮與傳統的BC3紋理壓縮對比BC7對LDR紋理壓縮與傳統的BC3紋理壓縮對比
 上圖展示的是圖像通過BC6壓縮模式進行壓縮的前後效果對比圖。其中左邊的圖像為原始圖像,中間的是在壓縮過程中損失的一些細節,而右邊的就是壓縮後的圖像。可以看出,從畫質上來看幾乎沒有損失(肉眼看不出),但是卻可以大幅度降低顯存的占用。
圖像通過BC6壓縮的前後效果對比圖圖像通過BC6壓縮的前後效果對比圖

相關詞條

熱門詞條

聯絡我們