更新时间:2023-12-26 22:35
渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元。
渲染管线也称为渲染流水线或像素流水线或像素管线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产能力和效率,而渲染管线则是提高显卡的工作能力和效率。
由于在新的时代,对游戏画面、质量有越来越高的要求使传统的渲染架构无法满足游戏发展的需要,微软在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个纹理贴图单元。其实这又引出了一个概念,就是纹理填充率,这也是显卡的一个重要性能指标,和渲染管线一样也是越多越好,这两者是相辅相成的。
看看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