现在的位置: 首页 > 综合 > 正文

GPU大百科全书 第五章 桌面显卡的捍卫者

2013年01月19日 ⁄ 综合 ⁄ 共 5709字 ⁄ 字号 评论关闭

到终点了?还早得很呢


  前言:在经历了几何单元的调整,光栅化的坐标变换,纹理的匹配以及shader的处理之后,我们的终于来到了GPU流水线的最后一步——ROP单元。

  什么?还没完?这都折腾了好几个月了,又是模型又是材质又是处理颜色的,我们不是把该干的都干了么,怎么还有步骤要处理啊?


GPU大百科全书第五章 桌面显卡的捍卫者

  是的,还没完。模型确实调节好了,也被“压平了”,而且我们还在材质库中为它找到了合适的外衣也就是对应的纹理,甚至还通过shader那像素级的精确修正改变了这些材质上不符合当前场合的颜色错误。

  这些工作都很重要,前面的硬件单元们干的也都很棒,但这里有个小问题——几何单元处理的是几何模型,光栅化处理的是坐标变换,纹理单元干的是抓取纹理,shader则在不停的运算着像素相关的数字,通过它们的辛勤劳作,我们得到了处理好的几何模型,拾取出来的纹理,运算妥当的像素,得到了几乎一切构成正确图像的基本要素。

GPU大百科全书第五章 桌面显卡的捍卫者
经典图形处理流水线

  但我们得到的仅仅是要素,并没有得到图像。

  想得到最终的图像,没有ROP单元是不行的。因为ROP单元的作用,就在于将这些图形要素所蕴含的信息混合并串连在一起,让他们形成一个完整有机的整体。

  ● 到终点了?还早得很呢

  图像处理就好像烹调一盘鱼香肉丝,打荷师傅为我们准备了一大盘子新鲜的青椒和冬笋,砧板师傅以精湛的刀工奉上了嫩滑的肉丝,灶台上还有一堆葱姜盐糖豆瓣酱之类的调料,这些都是一盘美味的鱼香肉丝的基础。但他们仅仅是基础,要想吃到好吃的鱼香肉丝,我们必须把他们混合在一起下锅,用精湛手法加以烹调才可以。

  而这,正是ROP单元的主要工作。

GPU大百科全书第五章 桌面显卡的捍卫者
图形处理犹如烹饪佳肴

  这世界简直就是一个茶几,上面摆满了杯具。你看,活着本已不易,各种压力和琐事让我们每天都焦头烂额了。好不容易腾出空来想要放松一下玩个游戏,结果竟然还要经历这么多复杂的处理步骤,又是几何又是变换,还要与各种方程狠狠地缠斗一番,最后还要在经历这么一个混合的过程,才能看到一帧画面。这根本就不是辛苦,简直就是命苦了。

  活着,确实是一种修行啊。


 

顾杰所写过的技术分析类文章索引(持续更新)

1、谁是微软忠实随从 A/N统一构架历史回顾

2、 忠实微软是否有用 A/N统一构架细节分析
3、揪出幕后罪魁祸首 是谁拖累了统一架构

4、 曝你不知道的DX11 解析GPU通用计算妙用

5、融聚的未来在哪里 APU构架方向发展分析

6、特效消耗是无尽陷阱?游戏画质现状解析

7、NV也玩融合 探GTX700核心CPU+GPU构架

8、分裂帝国的统一之路 Intel融合构架探秘

9、上错花轿嫁对郎 CrossFireX超高效率揭秘

10、口袋里的战争 移动世界3D芯片构架演义

11、iPad2也成无尽陷阱?移动GPU构架全揭秘

12、GPU大百科全书前传 看图形与装修的关系

13、GPU大百科全书第一章:美女 方程与几何 14、重归正途迎未来 AMD新GPU构架深度解析
15、GPU大百科全书第二章:凝固生命的光栅化 16、GPU大百科全书第三章:像素处理那点事儿
17、GPU大百科全书番外篇:那年AN那些事儿 18、GPU大百科全书第四章:虚与实共舞的TMU
产品:GeForce GTX 560 nVIDIA 显示芯片 回到顶部阅读

我是一个粉刷匠,粉刷本领强

  ● 我是一个粉刷匠,粉刷本领强

  ROP单元一直是一个相对神秘的地方,不同于其他单元的单纯和直接,ROP单元的结构和作用一直都容易让人产生混淆。有人认定ROP单元的作用就是处理雾化之类的特效,有人觉得他是抗锯齿的场合,有人以为光栅化过程在这里进行,有人相信它是送出像素的单元。甚至连ROP单元的名字长期以来都存在着不同的版本——Raster Operations Units以及Render Output Unit。


GPU大百科全书第五章 桌面显卡的捍卫者
ROP单元结构

  其实,ROP单元并没有大多数人想象中那样神秘,除了觉得ROP是在处理光栅化过程的人之外,其他所有人并排坐在一起,把自己的观点重复一遍,ROP单元的功能就出来了——是的,ROP单元的功能,就是处理雾化等特定的特效,进行采样及抗锯齿操作,以及将所有图像元素混合成最终画面并予以输出。所以从作用的角度出发,相比于Raster Operations Units这种头衔味道更重的名字来说,Render Output Unit显然更加适合用来描述ROP单元。

GPU大百科全书第五章 桌面显卡的捍卫者
ROP位于图像处理过程的最后一步

  Render Output Unit,翻译过来就是渲染输出单元,那么渲染输出的第一步,明显就是渲染啦。

GPU大百科全书第五章 桌面显卡的捍卫者
渲染实例

  渲染这个词对不少人来说一直都很神圣。包括笔者在内,许多爱好者在刚刚接触到图形处理过程时,都曾经一度将渲染想象的极其复杂和神秘。其实不然,渲染过程无非就是将已经准备好的诸多图像元素混合在一起而已。几何处理单元,光栅化,TMU以及Shader单元,他们所做的看似复杂的工作,都只是为渲染过程准备基础和条件。而真正进行渲染的混合过程,跟其他图形处理过程一样,从本质上来讲其实非常简单。

  把处理好的像素弄上纹理,把调好的漆刷上墙,收工。

产品:GeForce GTX 560 nVIDIA 显示芯片 回到顶部阅读

哎呀我的小鼻子,变呀变了样

  ● 哎呀我的小鼻子,变呀变了样

  如果仅仅是完成混合以及输出,这么简单而且轻松的工作量似乎有点太便宜了ROP单元了。没错,除了进行Z值相关的检查来保障输出像素的准确性之外,混合输出过程几乎不会带来其他更加复杂的操作。这种相对宽松和富裕的工作环境,让ROP单元有了扩展的充分理由和借口。于是随着人们图形需求的增长,ROP单元很快就具备了另一个作用,那就是协助完成全屏抗锯齿(FSAA)工作。


GPU大百科全书第五章 桌面显卡的捍卫者
不同全屏抗锯齿(FSAA)等级带来不同画质

  我们所看到的图像的基本构成单位是像素,而像素的形状则是一个又一个的小方格,当两个相邻像素存在巨大的颜色反差时,这两个像素中间就会出现一条非常显眼的颜色分界线。颜色分界线带来的界面效应是区分物体边缘的重要标识。

GPU大百科全书第五章 桌面显卡的捍卫者
AA过程,本质上就是界面过渡性的调整

  对于垂直和水平出现的像素分界来说,由于其本身的范围非常均一,因此并不会造成界面效果之外的效应,但当像素分界以斜线的形式出现时,效果就完全不一样了。斜向像素分界线,正是困扰3D图形界多年的问题——锯齿。

GPU大百科全书第五章 桌面显卡的捍卫者
最简单的方法体验锯齿

  打开你的画笔,尝试着画一条最简单的斜线,然后放大看看。是的,非常不幸,这就是让人讨厌的锯齿,外号“狗牙”。

GPU大百科全书第五章 桌面显卡的捍卫者
不同锯齿以及FSAA过滤方法

  锯齿的存在极大的影响了图形效果的表达,本来应该平滑的几何模型表面,在光栅化并变成像素图元之后变得不再平滑,这极大地影响了人们观赏图形时的感受。所有影响人们观赏图形的因素最终都要被干掉,这正是图形界发展的根本动力。为了消除锯齿感给图形造成的影响,我们有了Anti-Aliasing以及Anti-Aliasing Unit,也就是AA以及AA单元。

  可抗锯齿这事,跟ROP又有什么关系呢?

产品:GeForce GTX 560 nVIDIA 显示芯片 回到顶部阅读

锯齿怎么抗

  ● 锯齿怎么抗

  既然锯齿的产生源自斜向分布像素之间的反差所生成的颜色分界线,那么淡化这条分界线就成了抗锯齿的首选方案。分界线的碍眼是因为他极强的对比性,那么我们如果将分界线周围数个像素的颜色提取出来进行混合,然后重新赋予分界线周围这些像素“中和”后的颜色,不就能让原本非常突兀的颜色分界线变成自然平顺的颜色过渡,并借以消灭碍眼的锯齿了么?


GPU大百科全书第五章 桌面显卡的捍卫者
NV17核心抗锯齿实例

  混合,中和,赋予像素新的颜色,Anti-Aliasing的这些核心内容,不正是ROP最传统的工作么。抗锯齿的原理,注定了这项工作必须通过ROP单元来进行,现在你明白AA单元为什么会出现在ROP里了吧。

GPU大百科全书第五章 桌面显卡的捍卫者
抗锯齿操作过程

  Anti-Aliasing过程的起点开始于对图像的放大,我们首先要将整个图像(超级采样,SSAA)或者比较精确的物体边缘(多重采样,MSAA)进行放大,然后对颜色反差巨大的物体边缘部分的像素及其周围的像素进行提取和混合,形成比原来更加自然但也更加模糊的颜色过渡,最后再将图像缩小回原来的尺寸以便消除颜色过渡产生的模糊现象。

GPU大百科全书第五章 桌面显卡的捍卫者
平滑实例

  ROP在AA过程中所做的事情,就是提取颜色分界线所在像素及其周围像素的颜色数值,然后对这些像素的颜色进行混合,再重新把新的过渡颜色刷上去。

  又完了?是的,又完了,看似高深的抗锯齿,其实就是通过混色削减边缘比度这么简单……

产品:GeForce GTX 560 nVIDIA 显示芯片 回到顶部阅读

每个人都有自己的好“碰友”

  ● 每个人都有自己的好“碰友”

  几何单元后面跟着光栅化,纹理单元有shader陪伴,似乎每个人都有自己的好“碰友”,大家激烈竞争同时又相互支持,共同完成着属于自己的工作。那作为整个流水线后端的ROP,有没有自己的好“碰友”呢?


GPU大百科全书第五章 桌面显卡的捍卫者
ROP需要反复对一帧画面进行多次操作

  在前面的章节中我们已经知道,抗锯齿环节的操作需要频繁的对图像进行放大,缩放以及对像素采样和混合过程,这些过程意味着ROP需要反复对一帧画面进行多次操作,而且这些操作还会涉及高分辨率以及更多像素数量的问题。

  另外,游戏体验很重要的组成部分就是画面的流畅度,要利用视觉残留效应让人眼误以为画面是连贯的,每秒钟ROP所需要输出的有效帧数起码要大于30帧,本来每一帧画面的数据量就比正常情况下高很多,画面总量有如此之大,这一切都意味着一件事——ROP的工作,背后蕴藏着巨大的数据量。

GPU大百科全书第五章 桌面显卡的捍卫者
开启AA会带来极大的数据增量

  由此可见,想要让ROP保持极高的工作效率,充足的显存带宽和缓冲空间是必不可少的。

GPU大百科全书第五章 桌面显卡的捍卫者
一个64链路的CrossBar显存控制器

  我们要为ROP提供的好“碰友”,不仅要满足他对数据存储空间的极大要求,同时还要让他能够在任何想要进行存储及访问操作时均能自由的对存储空间进行动作。这不仅需要一套优秀的高频高位宽显存体系,同时还需要大数量的并行显存控制器。

  ROP需要的大带宽和大储存空间由前者提供,而后者则通过星形连接的Crossbar总线让每个ROP单元都与MC进行直连,从而尽可能多的降低ROP单元的存储延迟问题。

产品:GeForce GTX 560 nVIDIA 显示芯片 回到顶部阅读

鱼香肉丝的烹调流程

  ● 鱼香肉丝的烹调流程

  明白了ROP能干什么以及需要些什么,接下来我们就该看看ROP到底干了些什么,又是怎么干的了。只要你能明白鱼香肉丝是怎么从案板走向餐桌的,你就一定可以明白ROP单元是怎么把图像元素变成图像的。


GPU大百科全书第五章 桌面显卡的捍卫者
构成图像的图元

  首先,由TMU拾取的纹理以及由shader处理完成的像素会被传送到对应的z/stencil buffer,接下来ROP单元会首先对这些纹理和像素进行z/stencil检查,尽管经由光栅化处理之后的模型已经不具备实际存在的Z轴了,但其深度信息依旧会被保存下来,对于深度和模板信息的判断能够让ROP做出让那些像素被显示出来的决定,这不仅能够避免完全遮挡的像素被错误的显示在前面,同时也能够减少后续的color output部分的压力。由于存在对深度的判断和剔除操作,再加上Raster
Operations Units这一特殊名称的误导,很多人都以为光栅化过程是在ROP单元才完成的,实际上Rasterization和ROP单元本身并没有什么直接联系的。Rasterization所进行的是对模型的3D-2D坐标投影变换,而ROP则是对像素的混合和输出。

GPU大百科全书第五章 桌面显卡的捍卫者
z/stencil test过程

  当所有像素都完成了深度检查等操作之后,特定范围深度值的像素将被输送到alpha单元进行透明度检查,由透明度及透明混合所导致的效果对于雾化以及体积光等效果有至关重要的意义,因此alpha单元的检查与深度检查几乎可以说同等重要。根据程序的需要,ROP会以Blend单元对特定的像素进行alpha Blending操作。

GPU大百科全书第五章 桌面显卡的捍卫者
alpha Blending半透明混合贴图操作

  经过上述步骤之后,剩下的像素将会被填充进2D化模型需要的范围内,也就是我们常见的Pixel Fillrate过程。Pixel Fillrate就好像一口大锅,作为肉丝、青椒、冬笋还有葱姜盐糖豆瓣酱之类原料出现的像素会在这里被正确的混在一起。经过混合,图形元素所包含的原本孤立的信息会像食材之间交互作用产生的香气一样被释放出来,最终形成我们能够接受的图像。

GPU大百科全书第五章 桌面显卡的捍卫者
锯齿与抗锯齿

  由于像素上的效果已经被shader以数学的形式处理完毕了,因此如果没有AA操作,那么到这里为止图形渲染工作就算彻底完成了,所有效果的混合及填充将会让正确的画面最终得以呈现,这幅完成处理的画面会被送入output buffer等待输出。而如果程序要求进行AA操作,比如MSAA,那么ROP中的AA单元还需要对填充完毕的画面进行若干次多重采样,然后再对采样出来的像素点进行color Blending操作,完成之后的画面才会被送入帧缓存等待输出到屏幕上。

  装盘,上桌。混合,输出。

产品:GeForce GTX 560 nVIDIA 显示芯片 回到顶部阅读

一个厨子引发的危机

  ● 一个厨子引发的危机

  有人的地方就会有争议、争执甚至是争斗,GPU领域自然也不例外。不管ROP单元是忙活装修的粉刷匠,还是演绎火的艺术的大厨,安分守己的他似乎并未躲开成为事件中心的命运。  

  ROP承担着最终混合和输出图形的任务,它所需要处理的像素几乎等于前面所有步骤处理像素的总和,它的最终效率也决定着整个流水线的效率,即便前面的单元再强大再高效,如果ROP单元不足,整个体系就会遭遇到Fillrate wall,无法将上游过来的诸多图形元素进行混合也就无法完成输出,最终的帧数自然会受到影响,HD5830/6790就是明显的例子。


GPU大百科全书第五章 桌面显卡的捍卫者
ROP单元削减一半的HD6790芯片

  因此,保障ROP的总效率对GPU构架来说是极其重要的。由于Z/stencil检查和操作、AA以及blind过程都十分耗费显存带宽以及ROP自身的资源,因此与别的单元独善其身不同,为了获得更好的ROP动作效率,人们不仅要增加ROP的总数量,同时还要为其配置充足的显存带宽及显存控制器资源。

抱歉!评论已关闭.