簡介
渲染管線也稱為渲染流水線或像素流水線或像素管線,是
顯示晶片內部處理圖形信號相互獨立的的
並行處理單元。在某種程度上可以把渲染管線比喻為工廠裡面常見的各種生產流水線,工廠里的
生產流水線是為了提高產品的生產能力和效率,而渲染管線則是提高顯示卡的工作能力和效率。
由於在新的時代,對遊戲畫面、質量有越來越高的要求使傳統的渲染架構無法滿足遊戲發展的需要,微軟在Vista中一起發布了最新的DirectX 10技術,以取代上代的
DX9.0技術。
在
DX10的
統一渲染架構中,渲染管線、頂點著色器等不復存在。所謂統一渲染架構,大家可以理解為將Vertex Shader(頂點著色器單元)、Pixel Pipelines(像素渲染管線)統一被Stream Processors(
流處理器)所取代。此時,顯示卡中的
GPU將不會開闢獨立的渲染管線,而是所有的運算單元都可以任意處理任何一種Shader運算。這使得GPU的利用率更加高,也避免了傳統架構中由於
資源分配不合理引起的
資源浪費現象。 最新的DX11也是採用流處理器的
統一渲染架構。
數量參數
渲染管線的數量一般是以
像素渲染流水線的數量×每管線的紋理單元數量來表示。例如,GeForce 6800Ultra的渲染管線是16×1,就表示其具有16條像素渲染流水線,每管線具有1個紋理單元;GeForce4 MX440的渲染管線是2×2,就表示其具有2條像素渲染流水線,每管線具有2個紋理單元等等,其餘表示方式以此類推。渲染管線的數量是決定
顯示晶片性能和檔次的最重要的參數之一,在相同的顯示卡核下,更多的渲染管線也就意味著更大的
像素填充率和
紋理填充率,從顯示卡的渲染管線數量上可以大致判斷出顯示卡的性能高低檔次。但顯示卡性能並不僅僅只是取決於渲染管線的數量,同時還取決於
顯示核心架構、渲染管線的的執行效率、
頂點著色單元的數量以及顯示卡的核心頻率和顯存頻率等等方面。一般來說在相同的顯示核心架構下,渲染管線越多也就意味著性能越高,例如16×1架構的GeForce 6800GT其性能要強於12×1架構的GeForce 6800,就象工廠里的採用相同技術的2條生產流水線的生產能力和效率要強於1條生產流水線那樣;而在不同的
顯示核心架構下,渲染管線的數量多就並不意味著性能更好,例如4×2架構的GeForce2 GTS其性能就不如2×2架構的GeForce4 MX440,就象工廠里的採用了先進技術的1條流水線的生產能力和效率反而還要強於只採用了老技術的2條生產流水線那樣。
重要性
顯示卡的渲染管線是
顯示核心(也就是顯示卡的GPU,顯示卡的心臟,學名叫顯示處理單元)的重要組成部分。現階段的顯示卡(主要是針對微軟
DIRECTX(驅動和作業系統的接口技術)的版本來說的)都是非
統一架構的,也就是分為
頂點渲染和
像素渲染。那么在顯示核心的內部就分為兩大區域,一個區域就是頂點
渲染單元(也叫頂點著色或
頂點著色引擎),主要負責描繪圖形,也就是建立模形。一個就是像素渲染管線(也叫像素渲染管道),主要負責把頂點繪出的圖形填上填色。然後再加上紋理貼圖單元貼上紋理,一個精美的圖形就出來了。如果還不懂,那舉個簡單的例子:比如現在要顯示卡繪出一個茶壺。當這個茶壺的頂點信息從
顯存傳到
頂點著色單元後,頂點著色單元就會依據這些信息繪出這個茶壺的輪廓。接下來像素渲染管線就會依據這個輪廓,把從
顯存中的有關這個茶壺的顏色信息讀出來,給這個茶壺上色,如果這個茶壺是白色的,就上白色的。然後再由紋理貼圖單元貼上精美的圖案,最後這個精美的茶壺就出來了。構想一下,平時畫畫,是不是也是先畫個大概,然後再進行修改,上色,畫上圖案,最後才畫好呀,其實顯示卡工作起來,也和畫畫差不多,只不過他的效率很高,每秒可以畫上億個罷了。
專門通道
渲染管線就是顯示核心中負責給圖形配上顏色的一組專門通道。它是顯示核心中單獨設計的一組電路,擁有單獨的電晶體。渲染管線越多,那么所繪出的圖形它的填充效率就越高,自然我們看到的畫面也就越流暢越精美。這就是為什麼渲染管線越多越好的原因。如果少了,那么自然就會使顯示卡的性能下降。當然渲染管線越多,顯示核心就會越大,因為它所使用的電晶體數目增加了。
不過在微軟的
DIRECTX10出來後,
頂點渲染和
像素渲染將淡出人們的視線,因為它將採用
統一架構。也就是一個核心中是由一組專門的通道既負責頂點渲染又負責像素渲染的。也就是只會有
貼圖單元。這個時候是貼圖單元越多越好,畫面越好,越流暢,性能越高。
紋理貼圖單元
在非
統一架構時代,像素渲染管線中還有一個概念,就是前文中說到的紋理
貼圖單元,一般來說,一條像素渲染管線只有一個貼圖單元,當然也有2個,3個甚至4個的。比如
NVIDIA的GEFORCE5800ULTRA就是2個,
ATI的X1900GT就是3個,ATI的X1900XTX就是4個。這也就是為什麼ATI的X1900系列發布後,都是16條渲染管線,但貼圖單元卻是48個的原因。那么X1900GT是36個貼圖單元也就不難得出了,因為它有12條渲染管線,每個管線中有3個紋理貼圖單元。其實這又引出了一個概念,就是
紋理填充率,這也是顯示卡的一個重要性能指標,和渲染管線一樣也是越多越好,這兩者是相輔相成的。
套用
象素渲染管線是衡量顯示卡的一個方面. 簡單的講就是 面向成色的東西吧,現在被廠商宣傳的管線概念都亂套了,ATI在X1900XTX的介紹中,明確強調"像素渲染單元"增加了三倍.達到了48個,而非廠家和媒體所說的48個渲染管線, 從以前的顯示卡來看,GeForce4 TI4200具有2個頂點單元;4個渲染管線,每個渲染管線搭配兩個貼圖單元.FX5800/5900具有3個頂點單元;4個渲染管線,每個渲染管線僅有個2貼圖單元,RADEON9700具有4個頂點單元;8個渲染管線,每個渲染管線僅有個1貼圖單元.RADEON9000具有1個頂點單元;4個渲染管線,每個渲染管線有個1貼圖單元!也就是說GeForce4 TI4200有4PS,8TMU,2VS,FX5800/5900有4PS,8TMU,3VS,RADEON9700有8PS,8TMU,4VS,RADEON9000有4PS,4TMU,1VS.PS是像素單元Pixel Shader Unit,現在我們把PS定為Pixel Shader Engine的簡寫即像素渲染管線;PSU則是Pixel Shader Unit或者叫Pixel Shader Processor即管線中的像素處理器單元)也就是說組成一條渲染管線至少要有1PS,1TMU,先這么認為。
看看6800U,具有6個頂點單元;16條渲染管線;16個
光柵化引擎ROP,也就是說6800U有16PS,16TMU,16ROP,6VS,好,到此傳統的一條渲染管線是由包括1個Pixel Shader Unit(像素著色單元)+ 1個TMU(紋理單元) + 1個ROP(光柵化引擎)三部分組成的.PS:TMU:ROP=1:1:1,(用到GFTI4200等顯示卡上是不成立的,這裡不做更多解釋)
功能性
從功能上說PSU完成像素處理,TMU負責紋理渲染,而ROP則負責像素的最終輸出,換句話也就是說一條完整的像素管線意味著在一個
時鐘周期完成至少進行1個PS運算,並輸出一個紋理一個像素,如果運用到6800U上,一個時鐘周期完成至少進行12個PS運算,並輸出12次紋理,12個像素。
來看看X1600,12個PS,4TMU,4ROP(ATI叫RBS,功能差不多)在構架上,X1600每4個像素單元一組,分成3組,12個PS,X1600在一個時鐘周期完成12個PS運算,只能輸出4次紋理,4個像素(
ATI在R300以來就使用獨立紋理單元,TMU不在PS內,
NVidia每個Pixelshader內包含一個TMU,)換句話說X1600在PS運算上等同於12流水線顯示卡,但在紋理渲染和像素輸出上等同於4管線顯示卡,所以認為X1600是4管的顯示卡!
至於G70,24PS,24TMU,16ROP,如果按照傳統G70也不是24管線的,因為G7016ROP,(16ROP,
顯存位寬是256bit,24ROP,384bit的顯存位寬。32ROP,512bit的顯存位寬)而不能達到傳統的,PS:TMU:ROP=1:1:1