(计算机应用技术专业论文)实时渲染中hdr技术的研究与应用.pdf_第1页
(计算机应用技术专业论文)实时渲染中hdr技术的研究与应用.pdf_第2页
(计算机应用技术专业论文)实时渲染中hdr技术的研究与应用.pdf_第3页
(计算机应用技术专业论文)实时渲染中hdr技术的研究与应用.pdf_第4页
(计算机应用技术专业论文)实时渲染中hdr技术的研究与应用.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硕士学位论文摘要 摘要 在虚拟现实系统中需要用到实时渲染技术,而图形渲染质量与渲染速度是三 维实时渲染的主要矛盾。在实时渲染中,光照的模拟计算是一项很耗时的工作, 而且仍然是当前图形学的一大难点。好的光照效果能够大大增强虚拟现实系统的 用户体验。 为了提高真实性及实时性,我们用两个方法来达到该目的。一是采用高动态 范围( h d r ) 图像。相比于普通的低动态范围( l d r ) 图像,h d r 图像记录了场景 的亮度信息。我们将利用h d r 图像来作为环境背景,以及由它来提供光照。二是 利用图形处理器( g p u ) 。以前的图形运算完全由c p u 来执行,而g p l 的出现极大 的极高了计算机图形处理的速度和质量。而g p u 所提供的可编程的图形流水线给 我们提供了更好的定制功能。我们将利用g p u 的可编程性来实现环境映射以及提 升实时渲染速度。 本文对h d r 技术以及g p u 技术做了分析与研究。对于h d r 图像的编码方式, 目前已有多种格式的编码方式,比如r g b e ,o p e n e x r 等。不过这些方法使用的都 是无损压缩,只是进行了初步的编码,压缩率很低。对此我们提出一种压缩编码 方法。该方法是基于目前已有的普通图像的压缩编码方式j p e g 进行扩展,针对 r g b e 格式的h d r 图像进行压缩。实验结果显示,该方法可在保持质量的基础上实 现较大的压缩率。此外,本文还提出了一种简单的利用h d r 图像来提供环境映射 及光照的实现方法。将h d r 图像作为立方体贴图的纹理来提供环境背景。对h d r 图像预先进行计算得到漫射反射图和高光反射图,再通过查询反射图得到场景中 某一点的光照信息。而最后的环境反射以及光照的计算都将通过g p u 来实现,我 们需要编写相应的运行于g p u 的着色器( s h a d e r ) 程序。 关键词:实时渲染,环境映射,g p u ,h d r ,压缩 a b s t r a c t i nv i r t u a ir e a l i t ya n dv i r t u a ld i s p l a ys y s t e m s ,r e a l t i m er e n d e r i n gt e c h n o l o g yw i l l b en e e d e d g r a p h i c sr e n d e r i n gq u a l i t ya n dt h er e n d e r i n g3 d r e a l - t i m er e n d e r i n gs p e e d i st h ep r i n c i p a lc o n t r a d i c t i o n i nr e a l t i m er e n d e r i n g ,t h el i g h t i n gs i m u l a t i o nr e m a i n sa h a r dp r o b l e m ,a n di t ss t i l lam a j o rd i f f i c u l t yi ng r a p h i c s g o o dl i g h t i n ge f f e c t sc a n g r e a t l y e n h a n c eav i r t u a lr e a l i t ys y s t e m su s e re x p e r i e n c e - i no r d e rt oi m p r o v et h er e a l i s t i ca n dr e a l - t i m er e n d e d n 吕w eu s e dt w o m e t h o d st o a c h i e v et h a tp u r p o s e f i r s t w em a k eu s eo ft h eh i g hd y n a m i cr a n g e ( h d r ) i m a g e c o m p a r e dt oo r d i n a r yl o wd y n a m i cr a n g e ( l d r ) i m a g e ,h d ri m a g e sr e c o r d e d b r i g h t n e s si n f o r m a t i o no ft h es c e n e w ew i l lu s et h eh d r i m a g ea sa l le n v i r o n m e n m i b a c k g r o u n d ,w h i c hp r o v i d e si l l u m i n a t i o n s e c o n d ,w em a k e u s eo ft h eg r a p h i c s p r o c e s s o ru n i t ( g p u ) i nt h ep a s t ,t h eg r a p h i c sc o m p u t i n gw a si m p l e m e n t e db y t h e c p u t h ee m e r g e n c eo fg p u h a sg r e a t l yi m p r o v e dt h es p e e da n dq u a l i t yo fg r a p h i c s c o m p u t i n g t h ep r o g r a m m a b l eg r a p h i c sp i p e l i n eo fg p u h a sp r o v i d e du sw i t hab e t t e r c u s t o m i z a t i o n w ew i l lm a k eu s et h ep r o g r a m m a b i l i t yo fg p u t oa c h i e v ee n v i r o n m e n t m a p p i n ga n di m p r o v e t h er e a l - t i m er e n d e r i n gs p e e d i nt h i st h e s i s w em a k ea n a l y s i sa n dr e s e a r c ho ft h eh d rt e c h n o l o g ya n dg p u t e c h n o l o g y f o rt h ee n c o d i n go ft h eh d ri m a g e s ,t h e r ea f em a n ys c h e m e s ,s u c na s r g b e ,o p e n e x r ,a n ds oo n b u tt h e s em e t h o d s a r el o s s l e s sc o m p r e s s i o n ,j u s tm a k ea p r e l i m i n a r yc o d i n g a n dt h ec o m p r e s s i o nr a t ei sv e r yl o w w ep r o p o s e dac o m p r e s s i o n m e t h o do fh d ri m a g e sf r o ma ne x i s t i n gi m a g ec o d e c i na d d i t i o n t om a k i n gt h e d e v e l o p m e n ts i m p l ea n de f f i c i e n t ,t h e u s eo ft h em a t u r et e c h n i q u e so fc o n v e n t i o n a l i m a g ec o d e c sa l l o w st h e i rs t r e a m i n gc a p a b i l i t yt ob ed i r e c t l ya p p l i e d t os t r e a mh d r o v e rn e t w o r k s i na d d i t i o n t h i st h e s i sa l s op r o p o s e das i m p l eu s eo fh d ri m a g e s t op r o v i d e i l l u m i n a t i o n h d ri m a g ea r eu s e d a st h et e x t u r eo fac u b em a pt op r o v i d e e n v i r o n m e n t a lb a c k g r o u n d i tp e r f o r m st i m e c o n s u m i n gd i f f u s el i g h ta n ds p e c u l a rl i g h t c a l c u l a t i o n si nap r e p r o c e s s i n gs t e p a n dd u r i n gt h ep r o c e s s ,w ew i l l u s eg p ut o 浙江大学硕士学位论文 a b s t r a c t a c c e l e r a t et h er e n d e rs p e e d w en e e dt op r e p a r et h ec o r r e s p o n d i n gg p us h a d e r p r o c e d u r e s k e y w o r d s : r e a l t i m er e n d e r i n g , e n v i r o n m e n tm a p p i n g ,g p u ,h d r ,c o m p r e s s i o n 浙江大学硕士学位论文 图目录 图目录 图2 1o p e n g l 渲染流水线9 图2 2o p e n g l 中v e r t e xs h a d e r 执行环境1 2 图2 3o p e n g l 中f r a g m e n ts h a d e r 执行环境l3 图2 4h d r 图像与普通l d r 图像的对比1 7 图2 5 一系列曝光度不同的照片1 9 图2 6r e a l t i m eh d rt e x t u r em a p p i n g 。2 0 图2 7 不同精度图片差别2 l 图2 8l a t i t u d e l o n g i t u d e 格式。2 5 图2 9h - c r o s s 格式2 5 图2 10v - c r o s s 格式2 6 图2 1 lm i r r o r - b a l l 格式2 7 图2 1 2l i g h t p r o b e 格式2 8 图2 13 球形环境映射2 9 图2 1 4 换个视点的球形环境映射2 9 图2 15 立方体环境映射3 0 图3 1h d r 图像压缩过程。3 4 图3 2h d r 图像基本颜色部分的有损压缩。3 4 图3 3 对e 通道进行有损压缩的结果一3 6 图3 4 不同压缩质量的有损和无损压缩一3 8 图4 1r a d i a n c em 印4 2 图4 2d i f f u s em a p 4 3 图4 3 半球关系。4 4 图4 4s p e c u l a rm a p 。4 4 图5 1 环境映射及光照模块框架。4 7 v i 浙江大学硕士学位论文 图目录 图5 2 玻璃的反射及光照效果4 9 图5 3 金属的反射及光照效果。4 9 图5 4 汽车效果一5 0 图5 5 汽车效果二5 0 塑垩奎兰堡主兰竺笙奎 耋旦墨 - _ _ - - _ i _ _ _ _ i - _ _ _ - - _ _ _ _ _ _ _ _ _ _ 。_ _ _ - _ _ _ _ _ _ _ _ _ _ _ l _ i _ _ _ _ _ _ - _ _ _ l _ - _ _ i _ _ - - i _ i _ - _ _ - _ _ _ _ _ _ _ _ - - 。- 一一 表目录 表3 1 图3 4 对应的数据3 8 v m 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得浙j 江大学或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文 中作了明确的说明并表示谢意。 学位论文作者签名:却坚眩 签字日期: 加。旷年f 月7 日 学位论文版权使用授权书 本学位论文作者完全了解浙江大学有权保留并向国家有关部门或机构 送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权浙j 江大学可 以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影印、 缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:钟坚联 签字日期:厶矿年月7 日 导师签名: 韵淘步 签字日期:2 一占年厂月7 日 浙江大学硕士学位论文 第l 章绪论 第1 章绪论 1 1 研究背景 信息技术的高速发展对人类生产方式、认知方式和社会生活产生了广泛而深 远的影响。通过各种信息获取方式和数字化技术,人类己可在计算机中建立一个 能充分表达客观世界的海量信息空间。遗憾的是,目前人类仍然只能以一种局部、 间接、非直觉的方式对信息空间中所存贮的客观事物进行探索。人类对计算机信 息空间有限的感知通道,构成了人类运用信息技术深入探索和认识客观世界的瓶 颈。 虚拟现实技术是解决这一瓶颈的有效途径。该技术通过对客观世界的信息建 模、人与虚拟环境的自然交互,实时地向用户提供逼真的感知信息,使人类可以 不受时空和生理条件的限制,去感知和研究复杂事件在各种假想条件下的发生和 发展过程,从而为人类认识世界和改造世界提供了全新的方法和手段。这些特性 使得虚拟现实技术在经济建设、国防安全和文化教育等领域有着重大的应用前景。 虚拟现实技术的有一个很重要的应用便是虚拟制造。制造业为了在竞争激烈 的全球市场求得生存与发展,必须能够更好地满足市场所提出的要求,即要以最 短的产品开发周期,最优质的产品质量,最低廉的制造成本和最好的技术支持与 售后服务来赢得市场与用户。面对不可预测、持续发展、快速多变的市场需求, 企业的生产活动必须具有高度的柔性。为了提高竞争能力,企业应当能够对市场 需求的变化作出快速敏捷的反应,并及时地对自身的生产作出合理的调整与重新 规划。计算机软硬件技术及网络技术的迅速发展为实现这一目标提供了强有力的 支持。基于这些因素,9 0 年代中有许多新概念、新观点应运而生,虚拟制造( v i r t u a l m a n u f a c t u r e ) 就是其中之一,它代表了一种全新的制造体系和模式,也是虚拟现 实技术的应用之一。在虚拟制造中,产品开发是基于数字化的虚拟产品开发方式, 以用户的需求为第一驱动,并将用户需求转化为最终产品的各种功能特征。虚拟 浙江大学硕士学位论文第l 章绪论 产品开发方式保证了产品开发的效率和质量,提高了企业的快速响应和市场开拓 能力。 在汽车制造行业中,虚拟制造得到了很好的应用,其中很主要的一个应用便 是虚拟设计与展示。由汽车设计人员设计好一个车的模型后,交由实时渲染系统 将该汽车模型虚拟的展示出来,并且可以实时的交互。可以在虚拟环境中从各个 角度观察考虑汽车,解剖汽车任何他想要观察的部位,行为测量,在汽车中漫游, 放大或缩小图像的大小。这样减少了研发成本,特别加速了研发过程,提供了更 快的市场化时间。强大的实时渲染能力可以获得更逼真的视觉效果,更有利于产 品的评估与展示。 1 2 研究意义 从计算机图形学出现开始,图形学界就一直对仿真真实世界有着不懈的追求。 经典的真实感图形【2 】学致力于产生仿真图像和视频,其对真实世界的表现可以达 到近似照片的水平,人们几乎很难分辨出来。传统上,真实感图形学采用物理建 模的方法,通过建立物理模型,对场景的颜色、材质、属性进行模拟,并仿真光 线和物理对象的交互,来产生真实的结果。这其实跟人们观察世界、摄影、摄像 的过程是一致的。光线跟踪和辐射度算法已经成为真实感图形学的经典方法。 在虚拟展示中,除了要求能真实的展示模型外,还有对交互性的要求。这将 允许用户实时的与系统交互,可以查看模型的每个方面。在实际应用中,通常将 计算机图形的渲染分为实时渲染和非实时渲染两类。目前,非实时的三维渲染效 果已经达到很高的水平。从一些科幻电影如真人版变形金刚中可以看到,非 实时渲染的效果已经和实景拍摄的高清晰胶片没什么差别。然而,每渲染这样的 一帧动画,往往需要花费数小时甚至数天的时间。所以非实时渲染是以大量的渲 染时间换取渲染效果的高度真实性。而与此不同的是,实时渲染面临着非常困难 的计算条件。因为三维实时渲染要求让用户能感受到物体运动的连贯性和流畅性, 以目前的图形硬件的能力以及软件技术条件,不可能在1 秒内生成几十帧的高质 量的三维运动图像序列。所以为了满足三维渲染的实时性,目前的三维实时渲染 2 浙江大学硕士学位论文第1 章绪论 系统大多是通过大幅度的降低渲染精度来减少渲染的计算量。但是由于渲染精度 的降低,带给用户的体验往往会不尽如人意。 如何在保留渲染精度的条件下使渲染速度达到实时性的要求是三维实时渲 染技术面临的主要困难。早期的计算机图形渲染都是有c p u 负责计算。而基于通 用计算目的设计的c p u 的图形运算效率非常低。因此,人们转而寻求设计专用的 图形处理芯片来加速图形运算。19 8 7 年,i b m 提出了视频图形阵列( v i d e og r a p h i c s a r r a y , v g a ) 的概念和硬件实现。当时的视频图形阵列控制器就是现在所谓的帧缓 存。v g a 中的像素更新工作由c p u 负责。2 0 世纪9 0 年代后期,n v i d i a 引入了 图形处理器( g r a p h i c sp r o c e s s i n gu n i t ,g p u ) 这个概念。而近年来,随着g p u 性能 的大幅度提高以及可编程特性的发展,人们开始将图形流水线中的某些处理阶段 以及图形算法发从c p u 向g p u 转移。所以在我们的系统中将使用g p u 来加速场 景的渲染。 另外光照的模拟计算在实时渲染中依然是一个难题。渲染方程( r e n d e r i n g e q u a t i o n ) 【3 】描述的是光能在场景中的流动。根据光学的物理学原理,它在理论上 给出了一个完美的结果,而各种各样的渲染技术,只是这个理想结果的一个近似。 利用该方程的计算能够生成逼近于真实照片的效果。尽管当前已经能计算生成这 样的图像,但是要在可交互性的环境下要生成这样的图像还是很困难。光能辐射 度( r a d i o s i t y ) 1 4 1 ,蒙特卡罗光线跟踪( m o n t ec a r l or a yt r a c i n g ) 1 4 】,以及光子 映射( p h o t o nm a p p i n g ) 是解决渲染方程的最主要的三个算法,这也就是所谓的 全局光照计算。但是对于目前的个人电脑来说,每个算法的计算量还是太大了, 因此不适合于像游戏、虚拟训练这样的实时系统中。另外还可以使用局部光照模 型,也就是只计算光源发出的光直接照射在物体表面所产生的光照效果,而不考 虑物体之间光线折射的影响。最著名的局部反射模型就是p h o n g 光照模型【5 j 。局 部光照模型实现简单,但是渲染的图像的真实性不高。为了增加渲染图像的真实 性,需要多个光源。但是光源的增加,也增加了光照计算的负担,使实时计算光 照有了巨大的困难。前几年又出现一种光照贴图( l i g h tm a p p i n g ) 技术,其原理 预先计算光源在目标平面上的光照值,把它保存成一个纹理,然后把这个光照纹 3 浙江大学硕士学位论文第l 章绪论 理贴到原先的平面上去。这样就把耗时最多的光照计算部分移到了实时渲染之外。 光照贴图对于类似建筑这样的物体效果很好,但是对于动态的物体来说就起不到 应有的效果了。近些年,基于图像的渲染【6 】技术得到了进一步的成熟和普遍的应 用。基于图像的光照【7 】研究也逐渐受到人们的注意。在已有的基于图像的渲染技 术中,有一个共同的假设就是场景本身是静态的,即场景的光照条件固定不变, 渲染过程只是通过改变视点位置或视线方向产生对场景的浏览。基于图像的光照 研究突破了静态场景的限制,使用户不仅可以改变视点,还可以改变场景本身, 从而产生出更丰富的光照效果。在这方面有了大量的研究1 8 1 1 9 i i 。刚,其中最值得注 意的是高动态范围( h d r ) 图像【1 1 1 【1 2 】【3 1 4 】在基于图像的光照中的应用。通过得 到场景中某点处的环境映射图,然后通过高动态范围的恢复算法,得到相应的辐 射度图。在辐射度图中得到光源分布,从而可以计算光照。基于图像的光照技术 增强了光照效果。 随着图形硬件的发展,我们可以使用图形处理器( g p u ) 来加速三维图形的 实时渲染,用户可以对虚拟场景进行实时的交互,快速的获得各种真实的效果。 计算机实时渲染技术是虚拟现实领域的基本研究问题。针对目前存在的问题,为 提高渲染的真实性与实时性,我们对场景的实时环境光照问题进行了一些分析与 研究,并将提出一个利用高动态范围( h d r ) 图像与环境映射来提供光照的方法, 为虚拟现实领域提供实时渲染技术方面的一个支持。 1 3 本文研究内容 国家9 7 3 项目虚拟现实的基础理论、算法及其实现针对虚拟现实建立富 有创新特色的一整套基础理论和方法,并进行应用验证。而本文的研究内容主要 以该项目子课题面向产品创新开发的虚拟设计平台中的汽车虚拟展示模 块为对象进行展开的。 本文主要针对i - i d r 技术展开分析与研究。另外为了解决漫反射和高光反射的 实时计算问题,我们将利用h d r 图像作为环境贴图,实现漫反射和高光反射的实 时渲染。而在此过程中我们将利用g p u 来进行加速。 4 浙江大学硕士学位论文第i 章绪论 本文第二章将介绍相关背景知识。其中包括环境映射,g p i j 编程相关知识, 以及h d r 相关的技术。h d r 技术包括h d r 的概念,以及h d r 图像的生成、显示、 压缩等相关知识。 h d r 图像的文件尺寸通常很大,用浮点数表示的原始图像将是普通r g b 图像 的4 倍大,这是由它的编码方式决定的。h d r 图像的编码方式,目前已有多种格 式的编码方式,比如r o b e 1 5 】,o p e n e x r l l 6 】等。不过这些方法使用的都是无损 压缩,只是进行了初步的编码,压缩率很低。对此我们在第三章提出一种压缩编 码方法。该方法是基于目前已有的普通图像的压缩编码方式j p e g 进行扩展,针 对r g b e 格式的h d r 图像进行压缩。实验结果显示,该方法可在保持质量的基础 上实现较大的压缩率。 针对实时光照计算中漫反射和高光反射的计算问题,本文第四章提出了一种 利用h d r 图像做环境贴图来实现漫反射和高光反射的方法。将h o r 图像作为立方 体贴图的纹理来提供环境映射。对h d r 图像预先进行计算得到漫射反射图和高光 反射图,再通过查询反射图得到场景中某一点的光照信息。而最后的环境反射以 及光照的计算都将通过g p u 来实现,我们需要编写相应的运行于g p u 的着色器 ( s h a d e r ) 程序。 本文第五章将介绍我们的汽车虚拟展示系统,并用我们前面所介绍的方法实 现相应的模块。 浙江大学硕士学位论文 第2 章技术背景 第2 章技术背景 2 1g p u 编程 g p u 是图形处理器( g r a p h i c sp r o c e s s i n gu n i t ) 的简称,它最早是由n v i d i a 公司于1 9 9 9 年随着g e f o r c e 2 5 6 图形芯片的推出而提出。g p u 的技术定义是:整 合坐标转换、光投影、三角形设定剪贴、以及每秒至少能处理一千万个多边形的 成像引擎的单晶片处理器。g p u l l 7 1 改变了人们以往在p c 上的视觉体验。 随着3 d 在生活中变的更加普遍,对于更快的处理器的需求也随之提升。随 着g p u 的出现,运算密集的多边形变换与光照计算( t r a n s f o r m a t i o n l i g h t i n g , 缩写t l ) 计算从c p u 转移到了g p u ,将c p u 从繁重的浮点运算中解放出来, 这使得渲染处理速度更快。这意味着所有的场景在精致性与复杂度都能提升,但 是却不会牺牲效能。基本上,g p u 提供了真正令人震撼的实时的真实性。 而从g e f o r c e 3 开始,n v i d i a 为g p u 增加了可编程模块。最初只有可编程的 顶点处理器( v e r t e xp r o c e s s o r ,也叫顶点着色器) 。最新的g e f o r c e f x 系列g p u 开始支持完整的可编程结构,包含了可编程顶点处理器和可编程片元处理器 ( f r a g m e n tp r o c e s s o r ,也叫片元着色器) 。因此现在我们所指的g p u 就代表了可 编程图形硬件。 2 1 1g p u 发展简史 2 0 世纪六、七十年代,由于受硬件条件的限制,图形显示器只是计算机输出 的一种工具。限于硬件发展水平,人们只是纯粹从软件实现的角度来考虑图形用 户界面的规范问题。 2 0 世纪8 0 年代初期,出现了g e ( g e o m e t r ye n g i n e ) 为标志的图形处理器。 g e 芯片的出现使得计算机图形学的发展进入图形处理器引导其发展的年代。g e 的核心是四位向量的浮点运算。它可由一个寄存器定制出不同功能,分别用于图 形渲染流水线中,实现矩阵,裁剪,投影等运算。1 2 个这样的g e 单元可以完整 6 浙江大学硕士学位论文 第2 章技术背景 地实现三维图形流水线的功能。芯片设计者j a m e sc l a r k 以此为核心技术建立的 s g i 公司,基于s g i 图形处理器功能的图形界面g l 及其后的o p e n g l ,成为图形 编程接口的工业标准。 2 0 世纪8 0 年代到9 0 年代,g e 及其图形处理器功能不断增强和完善,使得 图形处理功能逐渐从c p u 向g p u 转移。现代图形处理的流水线主要功能分为两个 部分:第一部分对图元实施几何变换以及对图元属性进行处理( 含部分光照计算) ; 第二部分则是扫描转换进行光栅化以后完成一系列的图形绘制处理,包含各种光 照效果和合成、纹理映射、遮挡处理、反混淆处理等。 2 0 世纪9 0 年代,n v i d i a 进入个人电脑3 d 市场,并于1 9 9 9 年推出具有标志 意义的图形处理器一- - g e f o r c e2 5 6 ,第一次在图形芯片上实现了3 d 几何变换和 光照计算。此后g p u 进入高速发展时期, g p u 。 从s g i 的g e 到n v i d i a 的g e f o r c e , 平均每隔6 个月就出现性能翻番的新的 g p u 的发展经历了2 0 年,芯片的线宽从 3 1 a m 缩小到9 0 n m ( 2 0 0 7 年的g e f o r c e8 8 0 0 集成了6 8 1 亿晶体管) ,集成电路的 逻辑设计能力提高几千倍,但处理器数据通道接口带宽仅提高十几倍。同时由于 对图形处理器计算能力的需求不断增长,出现了可编程的图形处理器,以n v i d i a 和a t i 为代表的g p u 技术正是适应这种趋势。 而到目前为止,g p u 已经过了六代的发展,每一代都拥有比前一代更强的性 能和更完善的可编程架构u 8 1 。 第一代g p u ( 到1 9 9 8 为止) :包括n v i d i a 的t n t 2 ,a t i 的r a g e 和3 d f x 的 v o o d 0 0 3 。这些g p u 拥有硬件三角形处理引擎,能处理具有1 或2 个纹理的像素, 能够大大提高c p u 处理3 d 图形的速度。但这一代图形硬件没有硬件t & l 引擎, 更多只是起到3 d 加速的作用,并且没有被冠以“g p u ”的名字。 第二代g p u ( 1 9 9 9 - 2 0 0 0 ) :包括n v i d i a 的g e f o r c e 2 5 6 和g e f o r c e 2 ,a t i 的 r a d e o n 7 5 0 0 ,s 3 的s a v a g e 3 d 。它们将t & l 功能从c p u 分离出来,实现了高速的 顶点变换。相应的图形a p i ,即o p e n g l 和d i r e c t x 7 ,都开始支持硬件顶点变换 功能。这一代g p u 的可配置性得到了加强,但不具备真正的可编程能力。 7 浙江大学硕士学位论文第2 章技术背景 第三代g p u ( 2 0 0 1 ) :包括n v i d i a 的g e f o r c e 3 和g e f o r c e 4t i ,微软的x b o x , 及a t i 的r a d e o n 8 5 0 0 。这一代g p u 首次引入了可编程性,即顶点级操作的可操作 性,允许应用程序调用一组自定义指令序列来处理顶点数据,并可以将图形硬件 的流水线作为流处理器来解释。也正是这个时候,基于g p u 的通用计算开始出现。 但是片元操作阶段仍然不具备可编程架构,只提供了更多的配置选项。开发人员 可以利用d i r e c t x 8 以及o p e n g l 扩展( a r b v e r t e x p r o g r a m ,n v t e x t u r e s h a d e r 和n v - r e g i s t e r - c o m b i n e r ) 来开发简单的顶点及片段着色程序。 第四代g p u ( 2 0 0 3 ) :包括n v i d i a 的g e f o r c e f x ( 具有c i n e f x 架构) ,a t i 的 r a d e o n 9 7 0 0 。相比上一代g p u ,它们的象素级和顶点级操作的可编程性得到了大 大的扩展,可以包含上千条指令,访问纹理的方式更为灵活,可以用做索引查找 最重要的是具备了对浮点格式的纹理的支持,不在限制在 0 ,1 范围内,从而可 以做任意数组,这对于通用计算而言是一个重要突破。d i r e c t x 9 和各种o p e n g l 扩展( a r b v e r t e x p r o g r a m 、a r b f r a g m e n t p r o g r a m 、n v v e r t e x p r o g r a m 2 、 n v f r a g m e n t p r o g r a m ) 可以帮助开发人员利用这种特性来完成原本只能在g p u 上 进行的复杂顶点像素操作;c g 语言等其他高级语言在这一代g p u 开始得到应用。 第五代g p u ( 2 0 0 4 ) :主要以n v i d i ag e f o r c e 6 8 0 0 为代表。n v i d i ag e f o r c e6 8 0 0 集成了2 亿2 千2 百万晶体管,具有超标量的1 6 条管线架构。功能相对以前更 加丰富、灵活。顶点程序可以直接访问纹理,支持动态分支;象素着色器开始支 持分支操作,包括循环和子函数调用,t m u 支持6 4 位浮点纹理的过滤和混合, r o p ( 象素输出单元) 支持m r t ( 多目标渲染) 等。 第六代g p u ( 2 0 0 6 ) :主要以n v i d i ag e f o r c e7 8 0 0 为代表。g p u 内建的c i n e f x 4 0 引擎,做了许多架构上的改良,提高许多常见可视化运算作业的速度,藉此 支持更复杂的着色效果,且仍能维持最高的影像质量。新方案在每个管线层面运 用许多创新技术: 重新设计的顶点着色单元,缩短几何坐标处理的设定与执行流程; 新开发的像素着色单元提供高出两倍的浮点运算效率,大幅提升其它数学 运算的速度,提高处理流量; b 浙江大学硕士学位论文第2 章技术背景 先进的材质运算单元结合许多新型硬件算法以及更优异的快取机制,加快 过滤与混色等运算作业。 2 1 2 图形渲染流水线 所谓流水线就是把一个大的任务按照可能的次序切成若干份连续的小任务, 实现分工处理。g p u 和c p u 的结构类似,它的功能也是以流水线的方式执行。c p u 是通用处理单元,可执行任何应用程序,而g p u 针对的是图形计算,专门用来处 理几何数据并最终生成可在显示器上显示的二维象素信息。其间所有的处理阶段 称为图形流水线( g r a p h i c sp i p e l i n e ) 。 传统的图形处理器接收输入的三维信息,然后按固定的功能进行处理,被称 为固定功能的图形流水线( f i x e d f u n c t i o ng r a p h i c sp i p e l i n e ) 。在此基础上增加了可 编程模块,替换掉原先的固定功能模块,让用户能对输入信息进行更为灵活的控 制,称之为可编程的图形流水线( p r o g r a m m a b l eg r a p h i c sp i p e l i n e ) 。 2 1 2 1 固定功能流水线 目前常用的基于流水线的图形编程接口主要是o p e n g l 和d i r e c t 3 d ,而它们 所支持的渲染流水线也很相似。如图2 1 所示是o p e n g l 的完整流水线。 图2 1o p e n g l 渲染流水线1 9 1 函 浙江大学硕士学位论文第2 章技术背景 该流水线主要有以下操作: 对每个顶点的操作( p e r - v e r t e xo p e r a t i o n s ) :几何元素都是以顶点的形式描 述。该步骤将顶点转化为图元。一些类型的顶点数据( 例如空间坐标) 被转换为 4 x 4 的浮点型矩阵。空间坐标由三维世界的一个位置被投影到显示器屏幕上的某 个位置。同时,如果有激活光照特性,将使用转换后的顶点、表面法线、光源位 置、材料特性和其他的光照信息进行光照计算,由此产生颜色值。这一阶段也就 是t & l 计算阶段。 图元装配( p r i m i t i v ea s s e m b l y ) :这阶段的主要部分是剪裁。剪裁的作用是 见掉落在由平面定义的半空间之外的几何部分:在某些情况下,需要进行投影除 法,这样就会使远处的几何物体看起来比近处的物体要小。然后进行试点和深度 ( z 坐标) 操作。这一阶段的结果是完全的几何图元,它们由变换后和剪裁后的 顶点组成,并且有相关的颜色、深度和纹理坐标值,以及用于光栅化步骤的辅助 元素。 像素操作( p i x e lo p e r a t i o n s ) :这一阶段将存储在系统内存中来自数组的像素 解压出来,转换为正确的元素数组。之后对数据进行缩放、偏移和像素映射处理。 其结果被截取,然后或者被写入纹理内存,或者发送到光栅化的步骤中进行进一 步处理。如果像素数据是从帧缓存中读取出来的,则进行像素转换( 缩放、偏移、 映射和截取) 的操作。然后这些值以正确的格式被压缩,并返回系统内存中的一 个数组。 光栅化( r a s t e r i z a t i o n ) :光栅化是将几何数据和像素数据转换进片元的操作。 每个片元块和帧缓存中的像素相对应。当把顶点连接进入直线或者计算填充多边 形的内部像素是,将要考虑直线和多边形点画线、线宽、点的大小、阴影模型和 平均值计算,来支持反走样。在该步骤中,为每个片元矩形都制定了颜色和深度 值。 片元操作( p e r - f r a g m e n to p e r a t i o n s ) :片元操作是将数据实际存入帧缓存 之前需要执行的一系列操作。它通过纹理取样和纹理操作来计算每个片段的最终 颜色值。 i o 浙江大学硕士学位论文第2 章技术背景 2 1 2 2 可编程流水线 将固定流水线中的顶点处理和片元处理模块替换为可编程的顶点着色器 ( v e r t e xs h a d e r ) 和片元着色器( f r a g m e n tp r o c e s s o r ) ,而其他模块不变,就是可 编程的图形流水线了。但是顶点处理器和片元处理器与固定处理功能的模块是并 存的。图形数据仍然可以不经过这两个模块,而从固定流水线走。这两个模块可 以根据需要替代固定模块。在可编程的图形流水线中,可编程模块不仅可以完成 固定模块的功能,还可以实现固定模块无法实现的功能。对可编程模块的控制通 过编写着色器程序来实现,分别是顶点着色器程序和片元着色器程序。后面一节 会对开发着色器程序所用的语言做介绍。 1 顶点着色器( v e r t e xs h a d e r ) 顶点着色器处理输入的顶点值以及相关的数据。顶点处理器通常处理以下传 统图形操作: 顶点变换 法向量变换以及规整化 纹理坐标生成 纹理坐标变换 光照计算 颜色材质应用 除了能处理通常的操作外,顶点着色器也可以进行另外功能的计算。在处理 过程中不能删除或添加顶点,而且同时只能处理一个顶点。尽管大多数的着色语 言都定义了自己的着色器执行环境,但大都类似。如图2 2 是o p e n g l 顶点着色 器的执行环境。顶点着色器从只读的输入寄存器读取顶点属性,利用常量寄存器 和暂存寄存器来执行计算。常量寄存器是只读的,它的赋值必须通过在外部应用 程序中来设定,它的值如投影矩阵、光源位置、光照方向等。暂存寄存器一般在 计算过程中作为临时存储空间来使用。着色器会将最终计算结果写入只能写的输 出寄存器。这些输出寄存器必须预先确定类型,即接受何种顶点属性,如变换后 的顶点坐标,纹理坐标,顶点颜色等。所有这些结果将送入流水线的下一阶段继 浙江大学硕士学位论文第2 章技术背景 续处理。 q i ( o i o r q l m 叼i q lv e f l e x 9 k m u n i l 讯。御 e l c s 伯r f c o i o r v e l o c i t y e l e v a t i o n t a n g e n t e l ( 口删e d 时a 棚加 m i ! p r o v i d e di n c l i r e c t l yb ya p p a i c a t i o n 口p r o d u ( e db yt h ev e r t e xp n x e s 妍 g l _ f 啪t c o l o r g l 。b a c k c o l o f g l m f r a g ( o o n j 钗 g i p o s i t i o n 9 1 p o i n t s i z e 鳃月批嘲 i 饼m 引 m o d e ( o o r d r e f r a ( t i o n l n d e x d e n s i t y e t c 图2 2o p e n o l 中v e r t e xs h a d e r 执行环境 2 片元着色器( f r a g m e n ts h a d e r ) 片元着色器执行片元操作。片元是光栅化产生的具有屏幕坐标并附带了很多 属性的点,比如插值后的颜色值,深度值,一个或多个的纹理坐标。根据一系列 的参数设置和条件,一个片元将修改帧缓存中对应位置的像素。期中一些片元经 过处理后会被丢弃,另一些混合后组成最终的像素颜色。 类似顶点着色器,不同的着色语言的片元执行环境也差不多。图2 3 是o p e n g l 浙江大学硕士学位论文第2 章技术背景 的片元着色器执行环境。 g l 。c o l o r g l s e c o n d a 呱o i o f g if r a g ( o o r d 9 l f r o n t f a c i n g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论