- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
real time rendering 的第二章翻译
《Real-time Rendering》翻译——叶将晖
第二章 图形渲染管线
“链条的牢固水平取决于它最单薄的环节。”
—Anonymous
在这章一开始我们将会介绍称为图形渲染管线(graphics rendering pipeline)的组成,其中图形渲染管线也被简称为管线。管线的功能主要有生成、渲染、二维图像、获取虚拟摄影机、三维对象、光源、着色方程、纹理等。在实时渲染中渲染管线是最主要的工具。在图2.1中描绘了运用管线的过程。对象的位置、形状以及在环境中的特征与在这环境中摄影机的位置都由它们的几何所决定。一个对象的外貌是由它们的材质属性、光源、纹理与着色模式所影响的。
图2.1.在左图中,在四棱锥顶端上固定了一个虚拟摄影机(在四条线的交点上)。只有在视见体积中的物体才能被渲染。透视投影渲染图像(正如该案例),视见体积是一个平截头体,也就是一个截得的矩形底部。右图所示的就是摄影机所“看见”的场景。值得注意的是左图中的红色圆环没有在右图中渲染出来的,那是因为它的位置不在视见体积中。而且左图中的扭曲蓝色棱柱经过裁去了椎体的顶部。
在渲染管线中的不同阶段,我们即将对此进行讨论与解释,其中主要集中于功能的介绍而非实现。细节的实现除了是程序所不能控制的元素外,其余的我们将会留在后面的章节所讨论。例如,在画线中顶点数据的格式、颜色、样式、是否有深度暗示,这些都是非常重要的,无论是采用森汉姆的画线算法(Bresenham’s line-drawing algorithm)[142]还是采用双向均匀算法(sysmmetric double-step algorithm)[1391]进行画线。通常这些管线都是在不可编程的硬件上实现的,这是为了尽可能的提高与优化执行效率。基本绘画的细节与填充算法会在罗杰斯(Rogers)一书[1077]中深入讨论。虽然我们可能很少的去控制那些底层硬件、算法、编码方式时,却有效的影响了绘图的速度与质量。
2.1 架构
在这物质世界,管线的概念被表现为不同于工厂中滑雪缆车装配线的许多形式。它也被应用在了图像渲染上。
一个管线包括了若干个阶段[541]。例如在油管中,油管中第一部分的油不能移动到第二部分,除非第二部分的油已经移动到了第三部分,第四部分也是如此。这就意味着管线的速度是由其中最慢的阶段所决定的,无论其他的阶段是多么的快。
理论上来说,在非管线系统中把管线分成n个阶段就相当于把速度加快了n倍。这种加速现象就是采用管线技术的主要原因。例如,一个滑雪缆车上只有一个座位的效率是很低的,那么就应该加上与上山滑雪人的数量相对应的座位。管线的各个阶段是并行执行的,但是只有完成了其中最慢的阶段其余阶段才能运行。例如,如果一辆车的方向轮安装阶段需要3分钟,而其余阶段只需要2分钟,那么效率最快的完成一辆也需要3分钟时间,因为其余的阶段在方向轮安装完成之前都必须闲置1分钟。在这管线中方向轮安装阶段是一个瓶颈,因为它决定了整体的生产速度。
这种管线架构也被应用在实时计算机图形学中。在概念上可以把实时渲染粗略的划分为3个阶段—程序、几何、光栅化,如图2.2。这种管线渲染引擎架构是计算机图形学的核心,因此必不可少的会在随后的章节进行讨论。其中的每一个阶段通常自身也是进行管线操作的,这就意味着它们会包含许多子阶段。我们在概念上区分下这些阶段(程序、几何、光栅化)、函数阶段与功能阶段。功能阶段都有需要执行的任务,但是在管线这中却没有指定以何种方式去执行。管线阶段,另一方面上,是与其他的管线操作并行执行的。管线阶段也可能为了满足高性能的需要而采用并行化。例如,一个几何阶段可能被分为五个功能阶段,但是它的图形实现而是由所分成的管线阶段所决定的。实现可能是两个功能阶段结合成一个管线阶段,也可能是由耗时的功能阶段分成许多并行的管线阶段
图2.2.这是渲染管线的基本结构,它由3阶段组成:程序、几何学和光栅化。其中的每一个阶段的内部也是管线,就像几何学阶段,或是在一定程度上是并行的,例如光栅化阶段。在这个例子中,程序阶段是一个单一的程序,但是这是阶段也能进行流水化操作或是并行操作。
渲染速度、图像的更新频率是由管线阶段中最慢的阶段所决定的。而渲染速度可以由帧频(fps)所表示,他表示每秒中图像的渲染数量。它也能由赫兹(Hz)所表示,他的实质可以表示为1/秒,它表示更新的频率。应用程序在每帧的时间里经过复杂的计算生成出各种图像。帧频要么是用来表示某一帧的速率,要么是一段时间的平均速率。赫兹被用在硬件上面,比如按固定的频率显示图像。由于我们处理的是管线,因此我们不能将在管线上通过的所有我们想要渲染数据所花的时间一一加起来。当然,这是因为管线的结构,它的允许每一阶段并行的去执行。如果我们能找到在管线中最慢的阶段,并能测出数
文档评论(0)