




已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)图形引擎中阴影算法的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 现代社会,随着计算机速度的提高及计算机图形学的发展,阴影计算已经从 原来的不可能或者简单模拟变成当今的高效果实时模拟或者真实模拟。阴影渲染 技术已经成为游戏引擎中不可或缺的一门技术。阴影渲染在图形渲染中可以算得 上是耗时耗资源较多的一种渲染。所以实时的渲染阴影已经成为图形学中一大重 要研究方向。 阴影渲染处理在过去由于硬件条件的限制通常是一种硬阴影,而当今越来越 多的人要求使用软阴影技术来绘制阴影,以便达到更真实的阴影效果。在当今硬 件条件飞速发展的条件下,利用可编程流水线,本文给出了一种特别的方法来实 现实时的软阴影绘制。将本影区域和半影区域分开计算并渲染是本文软阴影算法 的特色,利用阴影图方法对半影区域的处理方法是其特别之处。 首先,本文介绍了阴影算法所需要的一般技术,包括空间变换技术和g p u 编 程技术的发展过程和当今的水平及其调试工具等。 然后,本文重点分析和比较了几种重要的阴影算法的特点及效果。从最早使 用的平面投影阴影算法开始着手研究,因为它只试用于平面,所以这种方法当今 已大多使用于教学。同时本文也研究了阴影体算法( s h a d o wv o l u m e ) ,分析了其 算法及特点,这种算法的效率下降与模型的数量及复杂度增长呈线性比例关系。 而后又分析了阴影图算法( s h a d o wm a p ) ,这种算法不与模型的数量挂钩,但是其 渲染有精度误差。 最后,通过上述算法的研究比较,给出了一种实时软阴影渲染算法,这种算 法利用了阴影体中使用的轮廓边技术和阴影图技术共同完成,同时还使用了硬件 戈劳德( g o u r a u d ) 着色方式来处理a l p h a 纹理。通过对这种算法实验的分析,得 出了这种算法的特点,具有实时性,且可以用于一般的图形引擎。 本文使用d i r e c t 3 d 和h l s l ( h i g hl e v e ls h a d e rl a n g u a g e ) 高级着色语言进行 编程,d i r e c t 3 d 是w i n d o w s 平台流行的3 d 编程s d k ,h l s l 用于g p u 编程,与 d i r e c t 3 d 一起工作。 实验证明,伪软阴影算法能够达到实时渲染软阴影目的。 关键词:实时,阴影,软阴影,g p u 编程 a b s t r a c t a b s t r a c t n o w a d a y s ,a st h ed e v e l o p m e n to ft h ec o m p u t e rg r a p h i c sa n dt h eh i g h e rs p e e do f t h ec o m p u t e rh a r d w a r e ,t h es h a d o wr e n d e r i n gi s b e c o m i n g r e a l t i m ea n dm o r e b e l i e v a b l et h a nt h eo l dy e a r s t h es h a d o wt e c h n o l o g yi sb e c o m i n gm o r ee s s e n t i a li n c o m p u t e rg r a p h i c s s h a d o wr e n d e r i n go f t e nt a k e sal o to ft i m ea n dr e s o u r c e s s o r e a l - t i m es h a d o wr e n d e r i n gi sg e t t i n gm o r ei m p o r t a n ti nc o m p u t e rg r a p h i c s f o rt h el i m i t a t i o no ft h eh a r d w a r e , i tw a sa l w a y sr e n d e r i n gh a r ds h a d o w si nt h e p a s t b u tt o d a ys o f ts h a d o wt e c h i sm o r ep o p u l a r t om a k ev i r t u a lw o r l dt r u s t f u l a st h e d e v e l o p m e n to ft h eh a r d w a r e ,as p e c i a ls o f ts h a d o wa l g o r i t h mw i t ht h ep r o g r a m m a b l e p i p e l i n eo f t h eg p u ,w h i c hi st or e n d e rt h eu m b r aa n dt h ep e n u m b r as e p a r a t e l y , w i l lb e g i v e n r e n d e r i n gt h ep e n u m b r aw i t hs h a d o wm a pa l g o r i t h mi so n es p e c i a lt e c h n o l o g y f i r s t ,s o m eb a s i cm a t r i xt r a n s f o r m a t i o na l g o r i t h ma n ds o m eg p up r o g r a m m i n g a n dd e b u g g i n gt e c h n o l o g ya r ei n t r o d u c e d a n dt h e n ,s o m ea v a i l a b l es h a d o wa l g o r i t h m sa r ea n a l y z e da n dr e a l i z e d f i r s t l y , t h e p l a n a rp r o j e c t i o ns h a d o wa l g o r i t h m ,w h i c hi sa l w a y su s e dt op r o j e c t i o ns h a d o w so na n y p l a n e , a n du s e dt od e m o n s t r a t i o no f t e n ,i si n t r o d u c e d s e c o n d l y , t h es h a d o wv o l u m e a l g o r i t h mi sa n a l y z e d ,w h o s ef p sg e t sd o w na st h eg r o w i n go f t h en u m b e ro ft h em o d e l o rt h ec o m p l i c a t i o no ft h em o d e l s a tl a s t , t h es h a d o wm a pt e c h n o l o g yi st o l d ,w h i c h h a sl i t t l er e l a t i o nw i n lt h en u m b e ro fm o d e l s ,b u tw i l lb ei n c o r r e c t l yd i s p l a y e d s o m e t i m e sb e c a u s et h ep r e c i s i o no ft h es a m p l i n go ft h es h a d o wm a p a f t e ra l l t h e s e ,ar e a l t i m ew a yo fr e n d e r i n gt h es o f ts h a d o wc o m e so u t s p o n t a n e o u s l y , w h i c hi s m i x e db yt h es i l h o u e t t es k i l l so ft h es h a d o wv o l u m e ,t h e s h a d o wm 印a l g o r i t h ma n dt h eg o u r a u dt e c h n o l o g y , w h i c hi su s e dt or e n d e ra na l p h a t e x t u r e a st h ee x p e r i m e n tt e l l s ,i tw i l lb er e a lt i m e ,a n dc a nb eu s e dt og e n e r a lg r a p h i c s e n g i n e d i r e c t 3 da n dh l s la r eu s e dt or e n d e r d i r e c t 3 di sp o p u l a ro nw i n d o w ss y s t e m , a n dh l s li su s e dt op r o g r a mg p uw i t hd i r e c t 3 d t h ee x p e r i m e n t a lr e s u l t ss h o wt h a tt h ea l g o r i t h mr e a c h e st h eg o a lo fr e a l - t i m e s h a d o wr e n d e r i n g k e yw o r d :r e a l - t i m e ,s h a d o w , s o f ts h a d o w , g p up r o g r a m m i n g i i 图目录 图目录 图2 1 世界坐标系与模型的本地坐标系6 图2 - 2 取景截头体示意图7 图2 3d i r e c t 3 d 渲染流水线l3 图2 _ 4d i r e c t 3 d 顶点处理流水线1 4 图2 5d i r e c t 3 d 像素渲染流水线16 图3 1 在y = 0 平面阴影投影原理图1 7 图3 - 2 将阴影投射到任意平面原理图1 8 图3 3 平面阴影投影反影示意图2 0 图3 4 平面阴影投影假影示意图2 0 图3 5 正确平面投影阴影2 2 图3 - 6 反影效果2 2 图3 7 假影效果2 3 图3 8 阴影体示意图2 4 图3 - 9 不在阴影体中的物体。2 5 图3 1 0 在阴影体中的物体一2 5 图3 1l 当视点在阴影中时不正确的阴影体计数2 6 图3 1 2z - f a i l 方法正确处理视点在阴影体中的情况2 7 图3 1 3 轮廓边示意图。2 7 图3 1 4 用轮廓边生成阴影体2 8 图3 1 5z 。f a i l 算法的阴影体封闭方法2 9 图3 1 6 使用阴影体渲染阴影3 0 图3 一1 7 阴影体显示3l 图3 18 三套轮廓边产生的阴影3l 图3 1 9 模型数量对阴影体算法的影响。3 2 图3 2 0a m d 5 0 0 0 + 配置下的阴影体渲染3 2 图3 - 2 1 阴影区域示意图3 3 图3 2 2 阴影图原理3 3 图3 2 3r 3 2 f 格式的阴影纹理3 5 图3 2 4a 8 r 8 g 8 8 8 格式的阴影纹理3 6 图3 2 5 阴影图方法的茶壶及阴影一3 6 图3 2 65 1 2 x 5 1 2 的阴影图3 7 图3 2 7l0 2 4 x10 2 4 的阴影图3 7 图3 - 2 82 0 4 8 x 2 0 4 8 的阴影图3 8 图3 - 2 9 偏差值为0 1 的阴影3 8 图3 3 0 偏差值为0 的阴影3 9 图3 3 1 偏差值为0 0 0 0 0 5 的阴影3 9 v 图目录 图3 3 2 一个球体的阴影。4 0 图3 3 3 双线性插值原理图4 1 图3 3 4 九点采样平均法原理图一4 1 图3 3 5 双线性插值阴影4 3 图3 3 6 九点采样平均法4 4 图4 1 软阴影示意图4 5 图4 - 2 软阴影生成原理图4 7 图4 3 通过轮廓边生成平滑面原理图4 8 图4 - 4 立方体平滑面生成示意图4 8 图4 5 软阴影渲染流程图5 0 图4 6 一般阴影图算法与该软阴影算法的流程图比较5 i 图4 7 立方体软阴影渲染比较( 不同延长系数) 5 2 图4 8 半影a l p h a 纹理( 左) 和? 卜影深度纹理( 右) 5 2 图4 9 不同t 系数的老虎软阴影5 3 图4 1 0 重新计算平滑面( 左) 与不重新计算平滑面( 右) 5 3 图4 1 l 错误的邻接处软阴影。5 4 图4 1 2a l p h a 重计算示意图5 5 图4 - 1 3a l p h a 重计算后的软阴影5 5 图5 - i 赛车游戏架构u m l 图( 1 ) 。5 7 图5 2 赛车游戏架构u m l 图( 2 ) 5 8 图5 3 从光源观察赛车一5 9 图5 - 4 半影a l p h a 纹理5 9 图5 5 半影深度纹理5 9 图5 - 6 赛车的! f 影部分渲染区域6 0 图5 7 带伪软阴影的赛车渲染6 0 v l 独创性声明 本人声明所呈交的学位论文是本人在导j j i l i j s h 导下进行的研究工 作及取得的研究成果。据我所知,除了文中特另t i :d h 以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 左鸟 一 日期:2 7 ,年歹月2 厂日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 、 翮虢j 睡导师签名:4 卫! 醐:硝g - 月砑日鼍砍 第一章引言 第一章引言 目前,西方国家已经在3 d 图形方面远远领先于亚洲、非洲国家。早在2 0 世 纪6 0 年代,西方国家的3 d 图形处理技术就开始发展。而在2 0 世纪9 0 年代中期, 当中国还在计算机刚兴起不久,西方国家,特别是美国已经在图形处理方面展开 了激烈的研究与讨论,图形技术受到广大人民的关注,各种3 d 图形库标准先后兴 起( 如o p e n g l 、d i r e c t x ) ,各种图形算法论文不断被发表出来。j 下当国内还在为 2 d 痛苦的时候,美国的高级发达国家已经在图像处理方面取得了相当大的成就, 从论文的发表时间可以看出,西方国家关于此方面的论文多是在那个年代发表的。 进入2 1 世纪以后,基本的图形处理已经基本完善,而越来越多的人更关注3 d 图 形表现的真实性,使3 d 图形更逼真、细腻。当今的医学图像处理、游戏、军事模 拟、家电、车载系统等,都开始更多使用3 d 技术。 当今比较流行的3 d 图形引擎,特别是3 d 游戏引擎的图形引擎都包含阴影实 现【l 捌,阴影实现能够使图形渲染的真实性上升一个档次。以前的2 d 游戏引擎中 都包含有阴影,只不过是用阴影图片进行绘制,即所谓的假图( 一种假的阴影) 。 加入阴影能够很好的反映事物及光照。而当3 d 绘制技术刚刚进入游戏引擎的世 界,阴影技术及硬件的支持还不那么支持阴影实时的渲染,很多游戏都是使用的 静态阴影,如果仔细观察,不难发现经典f p s 游戏反恐精英1 5 版本的人物是 不存在阴影的,可以想象当时的技术有多么的落后。而目前的游戏如最受热捧的 孤岛危机,其爆炸、景深、粒子、阴影系统等多为人赞誉,其中其软阴影的实 时渲染更是其中的拿手好戏。可见阴影渲染对于真实感的加强举足轻重的作用。 阴影技术在许多的图形引擎,特别是游戏引擎中大肆的加以应用,因为其真 实感大大增强。包括一些图像处理软件都使用了阴影渲染技术。目前许多游戏都 进行了阴影的渲染以增强真实感。例如,著名的网游魔兽世界,f p s 游戏孤 岛危机等现在流行的游戏。这些游戏都是具备阴影真实感的,而且其阴影渲染 多是消耗资源较高的部分。如果注意观察,可以发现游戏反恐精英1 5 版本的 人物是不具备阴影的,因为就当时的图形引擎和硬件来说,阴影的实时渲染是极 其不可想象的。 电子科技大学硕十学位论文 现代社会,人们对图形渲染真实性的要求越来越高,而阴影在渲染真实性方 面已经是必不可少的组成部分。最初使用阴影算法运用物体向一个平面压扁的投 影方式来产生阴影,这种算法只能在平面上产生阴影,并且需要将物体进行两次 完全的绘制,有很大的局限性。后来由于硬件水平的提高,诸如深度缓冲( z b u f f e r ) 和模板缓冲( s t e n c i lb u f f e r ) 以及可编程流水线得以使用。自此,阴影图( s h a d o wm a p ) 算法和阴影体( s h a d o wv o l u m e ) 算法广泛流行。 s h a d o wv o l u m e s ( 体积阴影) 是一种基于几何形体的技术,它需要几何体在 一定方向的灯光下的轮廓去产生一个封闭的容积,然后通过光线的投射就可以决 定场景的阴影部分( 常常使用模板缓冲去模拟光线的投射) 。这项技术是像素精 确的,不会产生任何的锯齿现象,但是与其他的技术一样,它也有缺点。最主要 的两个问题一是极度依赖几何形体,二是需要非常高的填充率。同时,体积阴影 也相当依赖c p u ,视觉效果方面是产生的阴影比较“硬”。目前使用阴影体技术来 制作的游戏引擎并不多见,d o o m 3 和f e a r 这两款游戏就是典型的阴影 体渲染出来的阴影,其阴影就比较“僵硬”。 s h a d o wm a p p i n g ( 阴影映射) 是一种图像空间的技术,它是在以光源位置作 为视点的情况下渲染整个场景的深度信息,然后再使用这些深度信息去决定场景 的哪一部分是处于阴影之中。它有锯齿并且依赖z 缓冲技术。由于可以在不减少 帧率的情况下达到真实感光照和阴影效果,编辑器允许在场景中放置任意数目的 静态光源,它会为每个面预计算光流量( 1 i g h tf l o w ) 和静态阴影,因此现代商业 3 d 游戏中多数都会使用到阴影映射。阴影映射效果的一个影响因素是s h a d o wm a p s i z e ,如果s i z e ( 尺寸) 小,会导致阴影边缘模糊不清、闪烁、出现大型锯齿。增 大s i z e 能提高阴影质量,但帧率会受到影响。 s o i ts h a d o w 从字面上直译过来就是“软阴影”,不过叫“柔和阴影”似乎更合适。 我们知道生活中很多阴影的过渡都是有渐变,而软阴影的作用就是要模拟这种效 果,在阴影周边制造虚化的效果。软阴影本身并不是指一种技术,而是指通过采 用某种技术达到的效果。目前的许多新的图形引擎都是用的是软阴影。因为软阴 影能够很好的表现真实世界。游戏孤岛危机是公认的软阴影引擎做的最好的 一款,当然其他的游戏如纪元1 7 0 1 这种大规模阴影渲染也值得一提。 阴影体能够得出更精确的阴影效果,但是由于该算法基于图形,计算量却会 因网格的增加而加倍增加。阴影图却是一种更接近图像的计算,所以效率更高, 当需要更大规模的渲染时,阴影图不失为一种更合理的解决方案。用阴影图实现 硬阴影的方法早已经实现,硬阴影已经不能够真实地反映世界,让人觉得不自然, 2 第一章引言 相比之下软阴影更能表现真实场景。 软阴影有很多中实现方法,包括光线追踪、阴影体加上半影楔( p e n u m b r a w e c l g e ) 、阴影图加上轮廓变、高斯模糊硬阴影等方法,其中各有利弊,从实时性 来讲阴影图方法不失为最好的,但是从真实感的强度来讲,最真实的属光线追踪, 但是其速度极慢,所以常用于静态渲染。最终软阴影的渲染将取代一般阴影的渲 染方法。 目前,国外对阴影算法的研究比较广泛,其中使用阴影体的半影楔方法和阴 影图的插值方法来实时渲染软阴影居多,离线渲染高质量软阴影多使用光线追踪 算法,另外在阴影方面还有自阴影等阴影渲染方式的研究。而国内对阴影方面的 研究较少,主要是对经典阴影算法的研究分析较多。 1 2 本文工作与结构 本文不仅研究三种基本的阴影算法,对其算法进行总结,对其性能进行比较, 而且最终得出一种新的软阴影的制作算法,并对其效果和性能进行分析。第一章 引言,介绍阴影技术的概念及其重要性。第二章介绍一些所使用的基本技术。第 三章分析及实现两种重要的阴影算法。第四章分析及实现一种新的伪软阴影技术, 这也是本文的重点所在。第五章介绍如何将其运用在实际工作中。第六章对全文 进行总结。 电子科技人学硕十学位论文 第二章相关技术基础 本章将介绍本文所需的基本技术,包括三维坐标变换及g p u 编程技术。 2 1 三维坐标变换 三维坐标变换是确定一个原始点最终在屏幕什么位置显示或者说是否显示的 一个重要计算过程。基本的三维坐标变换算法包括平移变换、旋转变换、缩放变 换矩阵逆变换等。可以用这些变换组成新的变换,如模型变换、视点变换。另外 一种特殊的变换就是投影变换。 任何一个三维坐标点t = 纯,f ,乞) 都可以通过与变换矩阵相乘得到新的坐标位 置t 。= ( f :,f :,f :) 。 m 1 2 m 2 2 m 3 2 m 4 2 m 1 4 m 2 4 m 3 4 m 4 4 ( 2 1 ) 由于变换矩阵相乘的结果可以代表这一系列单独的变换矩阵所变换的总的结 果,这一性质使得复杂的变换可以通过几个简单的变换组合而成。所以以下将介 绍到本文将使用的一些变换。 2 1 1 基本坐标变换 1 ) 平移变换 平移变换表示一个物体从一个位置移动到另外一个位置 1o 0 x 1ft , olo 少l 。l y o o o o 1 z o1 2 ) 旋转变换 旋转变换可以分为绕x 轴旋转、绕y 轴旋转、绕z 轴旋转 a ) 绕x 轴旋转: 4 ( 2 2 ) 第二章相关技术基础 1o 0c o s o 0s i n 9 o0 b ) 绕y 轴旋转: c o s 9 0 一s i n p o c ) 绕z 轴旋转: o s i n 0 c o s 0 o 0s i n 00 l0o 0c o s o0 0o1 c o s 8 一s i n 乡00 s i n pe o s o00 o o1 o ooo1 ( 2 3 ) ( 2 4 ) ( 2 5 ) 3 ) 缩放变换 缩放变换可以使得物体分别在x 、y 、z 轴上以因子s 工、s ,、s :进行放大或缩 小。因子越大,则在其所在方向想得到的放大倍数也就越到,反之则越小。当其 分量都为l 是则不改变物体大小。 s ,0 0s p 00 0o 2 2 2 顶点坐标变换 0 0 0 0 s ,0 o1 ( 2 - 6 一般在坐标体系结构中需要经历三种顶点变换最终力能是顶点够映射在屏幕 上,这三种变换分别是世界变换( 或模型变换) 、观察变换( 或取景变换) 和投影 变换。 1 ) 世界变换 所谓世界变换,就是将物体顶点坐标从模型空间转换到世界空间,如图2 1 所示。在模型空间罩,顶点位置坐标依据模型的本地坐标系的原点而定,在世界 空间罩,所有模型的项点公用一个原点,即世界坐标系原点。事实上,世界变换 就是将一个模型从本地空问从新定位到世界空间内。从模型空间到世界空间的转 5 电子科技大学硕十学位论文 换实际上就是对模型进行平移、旋转、缩放以及他们的任意组合。 世界窄问 空间 + x 图2 - 1 世界坐标系与模型的本地坐标系 2 1 观察变换 观察变换是在世界空间下设置一个摄影机,把各个顶点坐标从世界空间变换 到摄影空间。在摄影空间中,摄影机,或者说观察点位于原点,向着z 轴正方向。 因为d i r e c t 3 d 采用左手坐标系,所以z 轴正方向指向屏幕里面。设三维顶点在世 界坐标系的坐标为己删,在摄影空间内坐标为,则 只娜= 只俐o m ,枷 ( 2 - 7 ) 可以这样理解,使照相机位于原点且其正方向为正z 的方法就是通过以相同 的动作反向移动世界坐标系中的所有物体。 3 ) 投影变换 投影变换就是将三维的点转换到屏幕空间中去。分为正交投影变换与透视投 影变换。工程设计中的俯视图、前视图和侧视图就是典型的正交投影。由于本文 将不使用正交投影,所以这里只详细介绍透视投影。设三维物体在观察空间中的 坐标为细,投影矩阵为膨删,则顶点在投影空间的坐标为 = m 删 ( 2 8 ) 透视投影的特点是,距离摄像机越远的物体在投影平面上的成像越小。 6 第二章相关技术基础 f 蠢闲 1 ,_ j 、 _ z f 图2 2 取景截头体示意图 透视投影矩阵由此可以表示为 w0o0 0h00 00 q 1 0 0 一q z n 0 ( 2 9 ) w ( 争) 或w = 等 亿- 。, :c o t f ,照、1 或 :堡( 2 - 1 1 ) l2 圪 d :土( 2 - 1 2 ) z f z 。 在这个矩阵罩,z ,是近裁剪平面的z 值( 深度值) 。f o y ,和加。是指视区是 的水平范围和垂直范围( 用弧度表示) 。变量k 和圪是指在摄影空问内视区的宽和 高,如图2 2 所示。 7 电子科技大学硕士学位论文 2 2g p u 编程 2 2 1 图形硬件的发展过程 图形硬件是最近几年才发展起来的一个热门领域,目前仍在不断发展中。消 费级别图形硬件的鼻祖是3 d f x 公司在1 9 9 6 年推出的v o o d o o 显卡,最早的v o o d o o 显卡仅支持光栅化,并不支持光照和几何变换,所有的几何和光照计算都是放在 中央处理器( c p u ) 上完成的,由图形硬件去完成光栅化过程中的计算,如像素 插值( p i x e li n t e r p o l a t i o n ) ,透视校正( p e r s p e c t i v ec o r r e c t i o n ) 等,包括最后阶段 的填充和绘制均是由图形硬件来完成。从1 9 9 6 年至1 9 9 9 年,图形硬件在架构上 并未发生很大变化,其间有除3 d f x 外的其它公司也推出了自己的图形硬件产品, 工作原理和功能类似于v o o d o o 系列,如的n v i d i a 的鼬v a l l 2 8 系列、a t i 公司推出 的r a g e 系列,t r i d e n t 公司推出的9 8 8 0 系列等,值得一提的是n v i d i a 公司在1 9 9 8 年年底推出的t n t 系列,t n t 系列支持3 2 b i t 颜色输出,而此时v o o d 0 0 3 仅支持 1 6 b i t 颜色输出,3 2 b i t 颜色输出在那时是具有革命性的,这也奠定了图形硬件发展 标准的基础。1 9 9 9 年年底前,所有的图形硬件均不支持几何变换和光照( t r a n s f o r m a n dl i g h t i n g ,简称t l ) 的功能,n v i d i a 公司推出的g e f o r c e 2 5 6 改变这种局面, g e f o r c e 2 5 6 将几何变换和光照引入至图形硬件,从而使c p u 从繁重的计算中解脱 出来。由于图形硬件在设计时完全基于s i m d ( 单指令多数据流) 的处理器模型, 所以图形硬件在进行几何变换和光照时有通用处理器无法比拟的优势,其矩阵运 算的能力明显高于同期c p u 。除t & l 外,g e f o r c e 2 5 6 还引入了点乘( d o tp r o d u c t ) 的纹理操作方式,具体作法是将两个纹理取样的结果进行点乘,这种功能为逐像 素光照( p e r - p i x e ll i g h t i n g ) 计算提供了可能,后来的一段时期,各厂商陆续推出 了具有类似功能的产品,如a t i 的r a d e o n 7 5 0 0 ,n v i d i a 公司也推出了g e f o r e e 2 系 列,g e f o r c e 2 系列只是在g e f o r c e 2 5 6 的基础上提高了绘图效率,功能上并没有改 进。g e f o r c e 2 以前的图形硬件都是不可编程的,其工作原理就是应用程序通过应 用编程接口( a p i ) 指定硬件的工作方式,如是否启用雾,是否启用纹理贴图等, 然后硬件按照事先设计好的工作流程依次进行几何变换、光照计算、光栅化等步 骤,直到最后显示,用户只能指定几种有限工作状态,硬件不支持的工作状态只 有通过c p u 来完成,这样的工作方式限制了图形硬件功能的扩充,因为相对于各 种各样的算法,图形硬件提供几种有限的功能是远远不够的。最早的消费级可编 程图形硬件是n v i d i a 公司于2 0 0 0 年9 月推出的g e f o r c e 3 ,g e f o r c e 3 引入可编程 第二章相关技术基础 顶点流水线( p r o g r a m m a b l ev e r t e xp i p e l i n e ) 的概念,顶点的几何变换和光照都可 以根据用户指定的方式进行。与不可编程硬件本质区别是用户指定硬件工作状态 时勿须使用预先规定的状态,而是编写硬件可执行指令,与c p u 非常相似,所以 后来可编程图形硬件也被称为g p u ,这样图形硬件就可以完成用户自己设计的各 种各样的算法。当今,即使是普通的图形加速卡,其中的图形处理器都已经发展 成为具备强劲性能并且灵活易用的处理器。这些图形处理器不仅储存带宽大、计 算能力优异,而且其所具有的可编程顶点及像素处理单元支持浮点运算精度的向 量运算。高级着色语言( h i g hl e v e ls h a d i n gl a n g u a g e ,h l s l ) 更是对顶点及像 素理流水线提供了良好的可编程性支持。 2 2 2 着色器模型 着色器模型的概念是随着微软公司推出的d i r e c t 3 d 8 0 而引入的,它是可编程 图形硬件的软件接口,同时也规定了图形硬件必须具备何种能力。d i r e c t 3 d 8 0 中 引入的s h a d e rm o d e l 的版本是1 0 ,以下简称s m1 0 。其在顶点处理和像素处理上 规定了硬件的功能,分别对应着v e r t e xs h a d e r 和p i x e ls h a d e r 。由于早期硬件的处 理能力有限,所以在s m l 0 中,像素处理的可编程能力较弱。p i x e ls h a d e r1 1 中, 只允许使用最多4 条纹理指令和8 条数学运算指令,而且对不同硬件寄存器的读 写都有限制。与v e r t e xs h a d e r1 0 相比,p i x e ls h a d e r1 1 的可编程能力就弱多了, 它只能实现一些基本的纹理混合和数学运算操作,但与d i r e c t 3 d7 0 相比,其像素 处理功能己经有很大的提高。需要指出的是,s m 是软件接口,底层硬件实现上, 一条v e r t e xs h a d e r 或p i x e ls h a d e r 指令并非对应一条硬件指令,最早的s m1 0 硬 件n v i d i ag e f o r c e 3 上,p i x e ls h a d e r 是通过寄存器组合器( r e g i s t e rc o m b i n e r s ) 来 实现。但从工作原理上看,寄存器组合器并不属于可编程范畴。 继s m1 0 后,硬件厂商陆续推出了新产品,微软也扩展了s m1 0 ,也就诞生 了s m1 o 到s m1 4 ,这些不同版本的主要区别就是在像素处理上。由于s m 的实 现是硬件相关的,每个不同s m 版本其实就属于不同的硬件厂商,比如s m1 1 和 s m1 3 是n v i d i a 公司的g e f o r c e 3 和g e f o r c e 4 系列所支持的,而s m1 4 是a t i 公司的r a d e o n8 5 0 0 系列支持的。不同的硬件厂商支持不同版本的s h a d e rm o d e l , 这种情况直到现在仍然存在。 p s2 0 ( p i x e ls h a d e r2 o ) 在计算精度上有很大提高。v s2 0 ( v e r t e xs h a d e r2 o ) 允许使用2 5 6 条数学运算指令,同时它还保留了s m1 1 中的基址变址寄存器访问 9 电子科技人学硕七学位论文 方式,v s2 0 与其以前的版本相比,增加了如下新特性t 静态分支( s t a t i cb r a n c h ) :在v s2 0 中可以加入条件判断语句,并根据判断 的结果来决定是否执行某些指令。静态分支可以为顶点处理提供更高的执行效率, 每个顶点在处理过程中都不必执行所有的指令,而是根据事先设置好的常量寄存 器( c o n s t a n tr e g i s t e r ) 里的数值来判断,有条件地执行某些指令。在s m1 x 中, 是没法做到静态分支的,所有的分支指令都必须执行,最后通过特殊的指令来选 择其中一个分支的执行结果。 更多的常量寄存器( c o n s t a n tr e g i s t e r ) :v s2 0 的常量寄存器从原来s m1 1 里的1 2 8 个增加到了2 5 6 个,更多的常量寄存器让g p u 上实现较复杂的算法提供 了可能,如在v s 中计算泰勒级数,为了取得比较高的精度,往往需要更多的寄存 器,1 2 8 个常量寄存器在很多时候并不能满足需要。 新增加的数学运算指令:新增加的指令包括耿绝对值( a b s ) ,叉乘( c r s ) ,线 性插值( 1 e r p ) ,单位化( n o r m a l i z e ) ,求幂( p o w ) ,取符号位( s g n ) ,求正弦( s i n ) 和余弦( c o s ) 。在v s1 1 下,实现以上与这些指令相同的功能往往需要更多的指 令条数,甚至有些功能,如求j 下弦和余弦,在v s1 1 下是不可能实现的。 p s2 o 与其以前的版本相比,除了运算精度有所提高以外,最大的可执行指令 条数也从原来的4 条纹理指令和8 条数学运算指令增加到了3 2 条纹理指令和6 4 条数学运算指令。 如今硬件水平已经可以支持v s3 0 和p s3 0 ,能够达到一个更加强大的计算 能力。s h a d e rm o d e l3 0 技术是微软d i r e c t x9 0 c 发布后全面支持的一项特效。中 文名译为优化渲染引擎3 o ,国内不少玩家和媒体则简称其为s m 3 0 。s h a d e rm o d e l 3 o 在很大程度上丰富了的游戏研发时的编程模型,方便游戏开发商更简单的做效 果更好的游戏。s h a d e rm o d e l3 0 被应用到很多环境表面和混合的镜面光源中。和 s h a d e rm o d e l2 0 相比,s h a d e rm o d e l3 0 最大的优势似乎就在于拥有置换贴图技 术,而其它特效都完全可以在s h a d e rm o d e l2 0 中实现。即便如此,s h a d e rm o d e l3 0 比之s h a d e rm o d e l1 1 和s h a d e rm o d e l2 0 有不少优势,许多复杂的光影算法在 s h a d e rm o d e l1 1 和s h a d e rm o d e l2 0 上无法实现。 从几何实例( g e o m e t r yi n s t a n c i n g ) 来讲,s h a d e rm o d e l3 0 的另一个功能“几 何实例”能够带来值得一提的性能提升。通过使用该技术,游戏能够循环使用顶点 缓冲中的信息,以创建以前使用过的物体。一个例子是在r p g ( 角色扮演) 游戏 中,当玩家控制一整支军队时,场景中的角色实际上都采用了相同的模型。通过 几何实例技术,显卡只需要绘制其中一个角色,并复制出其它的角色,而不需要 l o 第二章相关技术基础 单独绘制每一个角色,这能够带来性能上的提升。这个功能也不会带来画质上的 改变,只会影响性能。使用g e o m e t r yi n s t a n c i n g 的功能,可以发送更少的绘图指令 就可以批量处理所有的数据。有时可以减少数十甚至上百次的绘图指令,这样就 可以更少的使用c p u ,减轻c p u 的负担,提高帧片速率,可以使图形处理器更 有效率的工作。 2 2 3 高级渲染语言( h l s l ) 及开发工具 d i r e c t x9 对于图形学另外一个巨大贡献是引入了成熟可用的h l s l ( h i 曲 l e v e ls h a d e rl a n g u a g e ,高级着色语言) 。在h l s l 发布之前,对v e r t e xs h a d e r 和 p i x e ls h a d e r 进行编程,需要使用那类似于g p u 汇编那样的指令集体系。这样的指 令集尽管能快速准确的“指挥一g p u ,但是开发的复杂度和难度相当大。和其他 所有计算机语言相同,s h a d e r 指令集也正不断向高级发展。m i c r o s o f t 制定的h l s l 便是使用高级语言来进行s h a d e r 编程和控制g p u ,h l s l 从整体上看来非常类似 于c 语言,这也是游戏设计师们所熟悉的。与对c p u 编程最大的不同之处在于 h l s l 的最小的数据吞吐单元是一个由3 2 位浮点数组成的四元组。这完全符合 g p u 的高效工作要求,要知道3 d 世界中无论是颜色( r g b a ) 还是坐标( x y z w ) 都是四元组。通过d i r e c t x 9 中包含的h l s l ,游戏设计师完全不需要理会寄存器 的分配、寄存器读端口限制、并行处理指令等繁琐而要命的硬件细节,从而可以 加快游戏的开发速度和质量。h l s l 的引入也极大的加速了d i r e c t x3 d 游戏的普 及。 除了微软倡导的h l s l ,o p e n g l a r b 也推出g l s l 了来与之抗衡。n v i d i a 则 更是融合h l s l 和g l s l 开发出了cf o rg r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年德州中考美术试卷及答案
- 仪表仪器考试试题及答案
- 老旧小区改造公共空间优化设计
- 2025湖南岳阳市平江县第四人民医院公开招聘临聘人员5人模拟试卷及完整答案详解
- 建设工程施工工艺标准化方案
- 景观照明与智能控制
- 城市更新中的建筑结构安全与防震设计
- 2025江苏沭阳县第一人民医院招聘工作人员(非事业编制)考前自测高频考点模拟试题及1套参考答案详解
- 驾考模拟真实考试题及答案
- 施工图设计与技术交底方案
- 短视频拍摄与后期制作(中职)PPT完整全套教学课件
- GB/T 42695-2023纺织品定量化学分析木棉与某些其他纤维的混合物
- 某培训基地可行性研究报告
- YY/T 1617-2018血袋用聚氯乙烯压延薄膜
- GB/T 39965-2021节能量前评估计算方法
- 尿动力学检查操作指南2023版
- 五星领导人课件
- GB/T 22560-2008钢铁件的气体氮碳共渗
- 《大体积混凝土》课件
- 日本产业发展及文化讲义课件
- 中北大学火炮概论终极版
评论
0/150
提交评论