![]() |
|
![]() |
||
DX10實用技術:DirectX 10的N大實用技術:
統一渲染架構:
實用理由:將渲染單元統一了,大大提供顯卡的運算效能
統一渲染架構
DirectX 10最大的革新就是統一渲染架構(Unified Shader Architecture)。DirectX 10之前各類圖形硬件和API均采用分離渲染架構,即頂點渲染和像素渲染各自獨立進行,前者的任務是構建出含三維坐標信息的多邊形頂點,後者則是將這些頂點從三維轉換為二維,這樣便可以通過視覺欺騙在屏幕上顯示出『三維』的場景。與此對應,GPU中也有專門的頂點渲染單元和像素渲染單元來分別執行這兩項工作(由於工作量不同,這兩種渲染單元的數量不相等,頂點渲染單元通常只有像素渲染單元的1/3?1/2)。有時候這種分離渲染架構不夠靈活,不同的GPU,其像素渲染單元和頂點渲染單元的比例不一樣,軟件開發人員在編寫代碼時必須考慮這個比例,這就大大限制了開發人員自由發揮的空間。另外,不同的圖形游戲或軟件對像素渲染和頂點渲染的需求不一樣,導致GPU的運算資源得不到充分利用。因此,微軟在DirectX 10中提出了統一渲染架構的思想:在相同物理類型的渲染單元上執行不同類型的渲染程序。換句話說,只用一種渲染單元,讓它既能完成頂點渲染,也能完成像素渲染,甚至還能實現幾何渲染。這樣一來,渲染單元可以得到最大程度的利用,減少了資源閑置的情形。統一渲染架構首先應用在Xbox 360的顯示芯片Xenos上,該芯片一共有48個渲染單元,它們可全部用於頂點渲染或像素渲染,沒有固定分配比例。NVIDIA首先將統一渲染架構應用在G80上,此後AMD也跟隨將統一渲染架構應用在R600上,DirectX 10顯卡時代也從此開始。