(计算机应用技术专业论文)基于可编程图形硬件的实时图形技术研究.pdf_第1页
(计算机应用技术专业论文)基于可编程图形硬件的实时图形技术研究.pdf_第2页
(计算机应用技术专业论文)基于可编程图形硬件的实时图形技术研究.pdf_第3页
(计算机应用技术专业论文)基于可编程图形硬件的实时图形技术研究.pdf_第4页
(计算机应用技术专业论文)基于可编程图形硬件的实时图形技术研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)基于可编程图形硬件的实时图形技术研究.pdf.pdf 免费下载

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

文档简介

武汉理j 人学硕卜学位论文 摘要 计算机实时图形技术是计算机三维游戏,计算机辅助设计与制造 ( c a d c a m ) 、数字媒体创作( d c c ) 、虚拟现实等领域中的基本问题。最近几年, 随着这些应用领域的飞速发展,人们对实时图形的要求也越来越高,提出了更 为复杂的,能逼真再现真实场景的实时渲染要求。为了满足这些应用领域的需 求,基于图形处理器( g r a p h i cp r o c e s s i n gu n i t ) 拘实时渲染技术成为了计算机图形 学的一个重要的研究方向。 文章主要研究了基于最新g p u 的实时渲染技术,主要涉及以下方面:三 维几何模型的数据存储结构、逐像素光照计算、实时阴影、室内小范围水面 的渲染及蒙皮网格体的渲染。此外,文章还结合作者将来的工作,简要阐述 了基于硬件优化的基本原则。考虑到实时图形技术近几年饷飞速发展,文章 涉及到的图形处理器都是支持s h a d e rm o d e l2 0 及以上版本的。上述均体现文 章紧密结合日新月异的实时图形渲染技术,跟上时代前进的步伐。 s h a d e rm o d e l2 0 是随d i r e c t 3 d 9 的发布而引入的图形硬件着色器模型。 与s h a d e rm o d e l1 1 相比,s h a d e rm o d e l2 0 支持更多指令种类及更长的顶点 与像素处理程序。在像素处理上,计算精度由定点9 位或1 2 位整数变成了2 4 位浮点数,计算精度的提高使渲染出的图像质量得到了质的飞跃。s h a d e r m o d e l2 0 不仅是软件编程接口,也是硬件标准,不同硬件厂商都在遵循s h a d e r m o d e l2 0 的基础上开发了不同的硬件产品,但对于应用程序来说,只要按照 s h a d e r m o d e l2 0 的规范编写,都可以保证正确运行在不同厂商的硬件一j = = 。文 章所介绍的技术都是围绕s h a d e r m o d e l2 0 展开。以下是文章各章节的内容简 介: 第1 章绪论。主要介绍实时图形技术的重要性、国内、外研究的现状、 课题的来源、课题研究的目的和意义以及论文涉及的关键技术。 第2 章系统开发的核心技术。主要介绍计算机实时图形及软硬件平台相 关的技术。其中首先介绍了汁算机图形学及三维向量代数的基础知识,随后 介绍了图形硬件和图形应用编程接n ( a p i ) 的发展,并从应用角度分析了图形 软硬件的发展趋势。 第3 章系统开发的详细设计。主要讨论大规模复杂光照情况下的实时渲 染技术,文章基于现有的研究成果并结合目前先进的图形硬件,提出了几种 新的实时图形渲染技术。首先介绍了逐顶点光照和逐像素光照的区别,以及 武汉理j ,人学硕士学位论文 逐像素光照在本系统中的实现,然后介绍了几种经典的阴影生成方式以及它 们的改进和实现,随后是在本系统中实现的基于费聂尔定理的室内水面渲染 技术,最后介绍了蒙皮网格体的渲染技术。在介绍这些技术的同时,文章还 结合具体实现细节提出了一些基于图形硬件的渲染优化技术。 第4 章研究工作总结。对以上各章介绍的技术、方法进行了总结,指出 其中的创新点及有待改进的地方。 关键字:g p u ,s h a d e rm o d e l ,实时渲染技术 武汉理j 人学硕+ 学位论文 a b s tr a c t t h er e a l t i m er e n d e r i n gi st h eb a s i cf o u n d a t i o no f3 d g a m e s ,c o m p u t e ra i d e d d e s i g n ( c a d ) ,c o m p u t e r a i d e dm a n u f a c t u r e ( c a m ) ,d i g i t a lc o n t e n tc r e a t i o n ( d c c ) a n dv i r t u a l r e a l i t y w i t h t h e s e a p p l i c a t i o n sg r o wr a p i d l y i nr e c e n t y e a r s ,t h e r e a l t i m e r e n d e r i n gb e c o m e sm o r ea n d m o r ei m p o r t a n t g p ub a s e dr e a l t i m e r e n d e r i n gt e c h n o l o g y c o m e sf o r t hi nt h i ss i t u a t i o n i nt h i s p a p e r , r e a l t i m e r e n d e r i n go fs c e n e sw i t hc o m p l e xm u l t i p l el i g h ts o u r c e si si n v e s t i g a t e d ,w h i c hi s o n ew a yt op r e s e n t i n gp h o t o r e a l i s t i ci m a g e s t h e p a p e r f o c u s e st h eg p ub a s e dr e a l t i m e r e n d e r i n gt e c h n o l o g i e s i t i n v o l v e st h ef o l l o w i n gp a r t s :s t o r i n go f3 d g e o m e t r y a n ds c e n e s ,p e r - p i x e ll i g h t i n g , r e a l t i m es h a d o w , s m a l l a r e aw a t e rr e n d e r i n ga n ds k i n n e dm e s h r e n d e r i n g b e s i d e s , a c c o r d i n gt ot h ea u t h o r sf u t u r ew o r k 、t h i sp a p e ra l s oi n t r o d u c e ss o m e g p ur e l a t e d o p t i m i z a t i o nm e t h o d s b e c a u s eg r a p h i ch a r d w a r ee v o l v e sr a p i d l ya tp r e s e n t ,a l l t h eg p ui n v o l v e di nt h i sp a p e ri ss h a d e rm o d e l2 0l e v e lo ra b o v e s h a d e rm o d e l2 0i si n t r o d u c e dw i t ht h e p r e s e n t a t i o n o fd i r e c t 3 d 9 c o m p a r e dt o s h a d e rm o d e l1 1 ,s h a d e rm o d e l2 0 s u p p o r t s m o r ek i n d so f i n s t r u c t i o n sa n dm o r ei n s t r u c t i o ns l o t s w h i c hp r o v i d el o n gv e r t e xs h a d e ra n dp i x e l s h a d e r b e s i d e s ,s h a d e rm o d e l2 0i m p r o v e si t sc a l c u l a t i o np r e c i s i o na tp i x e ll e v e l , w h i c hl e a d st ot h eg r e a ti m p r o v e m e n t so fi m a g eq u a l i t y s h a d e rm o d e l2 0i sn o t o n l ya na p i ,b u ta l s oah a r d w a r es t a n d a r d s ,a n yh a r d w a r em a n u f a c t u r e rs h o u l d a p p l yt h i ss t a n d a r d s ,s oa n ys o f t w a r es h o u l dr u nw i t h o u tc o m p a t i b l ei s s u ei nc a s e o fd i r e c t 3 d 9 c h a p t e r1 ,i n t r o d u c i n gt h ei m p o r t a n c eo fr e a l t i m er e n d e r i n g ,t h ef o u n d a t i o n , t h er e s e a r c h p u r p o s e a n dt h e s i g n i f i c a n c e o ft h e p r o j e c t b e s i d e s ,t h ek e y t e c h n o l o g i e si n v o l v e di nt h ep a p e ra r ei n t r o d u c e d c h a p t e r2 ,i n t r o d u c i n gt h ec o r et e c h n o l o g yi nt h i sp a p e r , i n c l u d i n gg r a p h i c h a r d w a r e v e c t o rm a t ha n d3 da p i c h a p t e r3 ,p r e s e n t i n gt h ei m p l e m e n t a t i o nd e t a i l so ft h es y s t e m t h i sc h a p t e r i n t r o d u c e st h ed e t a i l so fp h o n gi l l u m i n a t i o nm o d e l ,p e r p i x e ll i g h t i n g ,r e a l - t i m e s h a d o w ,f r e s n e l r e f l e c t i o na n dr e f r a c t i o na n ds k i n n e dm e s h t h e n t h e i m p l e m e n t a t i o nd e t a i l s i s p r e s e n t e d ,t h ei m p r o v e m e n t so fm ym e t h o da r ea l s o i n t r o d u c e d ,a l lt h ei m p l e m e n t a t i o ni sb a s e do na d v a n c e dg p u s c h a p t e r4 ,c o n c l u d e st h es y s t e m ,p o i n t so u ti n s u f f i c i e n c i e sa n di n n o v a t i o n a n d p r e d i c t st h ep r o s p e c to fv a r i o u st e c h n o l o g i e si nt h i sa r t i c l e k e y w o r d :g p u ,s h a d e rm o d e l ,r e a l t i m er e n d e r i n g i i i 武汉理j 。大学硕。l 学位论文 一一 1 1 问题的提出 第1 章绪论 计算机实时图形技术是计算机三维游戏,计算机辅助设计与制造 r c a d c a m ) 、数字媒体制作( d c c ) 、虚拟现实等领域中的基本研究问题。随着 这些应用领域的飞速发展,实时渲染技术显得越来越重要”。 基于图形处理器( g r a p h i cp r o c e s s i n gu n i t ,简称g p u ) 的实时渲染技术的研 究正是在当前这种环境下孕育而生。本文研究大规模场景及复杂光照环境下 实时渲染技术,为能更真实地模拟现实世界奠定基础。 1 2 课题来源 文章是基于可编程图形硬件的实时图形技术研究,是以国家自然科学基 金课题“分布交互三维视景行为一特征建模方法研究”一及武汉东湖软件公司 委托开发项目“分布交互三维仿真平台的开发”为依托研究开发的。 1 3 国内外研究动态和水平 1 3 1 国外研究动态和现状 目前欧美、日本在实时图形领域方面起步早、技术也较为成熟,它们有 着共同的特点,即p c 游戏软件产业和主机( c o n s o l e ) 游戏软件产业都很发达, 其中美国和日本分别是p c 游戏和主机游戏软件发行量最大的国家,这两个国 家不仅在实时图形的软件技术方面领先,硬件上更是处于世界垄断地位。如 美国著名的图形芯片设计公司n v i d i a ,其图形芯片占据全世界6 0 以上的市 场,日本在图形芯片的设计上也颇具实力,如p l a y s t a t i o n 系列游戏主机的图 形硬件均是日本独立丌发的。 美固上世纪六十年代宋步 :始,由于军用模拟飞行的需要,实时图形技术 的研究就得到美国国防部的支持。上世纪九十年代中后期,计算机三维游戏 的发展,尤其是i ds o f t w a r e 公司的毁灭战士和雷神之锤这两款游戏 的推山,人大地推动了对实时图形技术的需求。早期的三维游戏中,屏幕卜 武汉理l :人学硕十学位论文 所显示的三维图形是完全采用c p u 计算出来的,性能的限制导致屏幕分辨率 比较低,如毁灭战士游戏中只能采用3 2 0 + 2 4 0 这样较低的屏幕分辨率。 随着三维图形加速乍的推出,人们就基于这些图形硬件研究各种复杂的、能 最大限度模拟真实环境的实时图形技术,因此实时图形技术是随图形硬件的 发展而发展,老技术随着图形硬件的发展而逐步淘汰,新技术则随之被提出。 在美国等国家,实时图形技术在最近几年发展得尤为迅速。从1 9 9 8 年到 2 0 0 5 年,图形处理器的发展远比中央处理器的发展迅速,中央处理器发展遵 循摩尔定理,性能每1 8 个月翻一翻,而图形处理器的性能几乎半年翻一翻。 2 0 0 5 年典型的图形硬件( 如n v i d i ag e f o r c e6 8 0 0 g t ) 的渲染能力是1 9 9 8 年 典型图形硬件( 如n v i d i ar i v at n t 2p r o ) 的1 0 0 0 0 倍! 实时图形软件和硬件的发展也使早期用于非实时渲染的算法得以实时地 实现,如在七十年代末期提出的用于绘制阴影的s h a d o wv o l u m e 算法和s h a d o w m a p p i n g 算法在最近的图形硬件上都得以实现。 为了能够在实时图形领域的研究取得一定的进展,研究工作须充分借鉴 国外的研究成果,此外,还必须充分地发掘现有图形硬件的潜力。 1 3 2 国内研究动态和现状 国内实时图形技术方面的成果与国外相比明显落后许多。国内是近几年 随着网络游戏的升温才开始发展起来的。浙江大学在早期虽然做过不少图形 图像方面的研究,但很少是基于实时渲染的,总的来说代表着国内图形领域 最高研究水平的浙江大学与国外的研究水平仍然有相当大的差距。 由于许多技术是近几年才被国外学者提出,所以诸多的新名词和概念在 目前仍然没有统一的中文翻译,文章对于这些名词和概念将采用中英文混合 的方式表达,读者要结合上下文来理解。 1 4 研究的目的和意义 计算机实时图形技术是计算机三维游戏,计算机辅助设计与制造 ( c a d c a m ) 、数字媒体制作( d c c ) 、虚拟现实等领域中的基本研究问题,文 章的意义在于为这些应用领域提供先进的图形技术支持。 文章中所讨论的技术主要针列实时三维游戏,也能应用于计算机辅助设 计、虚拟现实、计算机仿真等领域。 武汉理j 。大学硕十学位论文 1 5 本文用到的关键技术 1 5 1 计算机图形学及虚拟现实技术 计算机图形学和虚拟现实技术是实时图形技术的理论基础,同时也是图 形硬件设计时参考的准绳。文章里涉及到的光照模型、几何变化、视觉模型 和阴影技术等都是计算机图形学理论的应用。虚拟现实技术在显示软硬件、 人机交互理论领域主导着实时图形技术的发展。文章所涉及到的技术都是建 立在计算机图形学和虚拟现实理论基础之上。 1 5 2d jr e c t 3 d 9 与s h a d e rm o d e i2 o d i r e c t 3 d 9 是微软公司最新的图形编程接口,在d i r e c t 3 d 的驱动模型架构 下,任何j 一商都可以开发支持d i r e c t 3 d 9 的硬件。微软公司不仅掌握着图形编 程接口的制定权,还主导着图形硬件的发展,在新的操作系统核心l o n g h o r n 上,微软提出了w g f ( w i n d o w sg r a p h i cf o u n d a t i o n ) 架构,w g f 从应用编程接 口( a p 0 、驱动程序架构( d r i v e rm o d e l ) 年f l 硬件功能上定义了一套全新的图形系 统。其中w g f l 0 就是d i r e c t 3 d 9 在l o n g h o r n 下的版本( 也称做d i r e c t 3 d 9 l ) , w g f 2 0 就是d i r e c t 3 d 1 0 ( 或d i r e c t xn e x t ) ,目前w g f 2 0 的规范仍然在制定 当中,但可以肯定的是,w g f 2 0 的推出将会进一步封 挤o r e n g l 的应用领域, o p e n g l 在w i n d o w s 平台上将逐渐被d i r e c t 3 d 取代已经是不争的事实。 s h a d e rm o d e l2 0 是随着d i r e c t 3 d 9 的发布而引入的图形硬件着色器模型。 相对于s h a d e rm o d e l1 1 ,s h a d e rm o d e l2 0 支持更多的指令和更长顶点处理程 序及像素处理程序。特别是在像素处理上,计算精度由原来的定点整数变成 了2 4 位的浮点数,计算精度的提高使渲染出的图像质量得到了质的飞跃。需 要指出的是,s h a d e r m o d e l2 0 是一个硬件标准,虽然不同硬件厂商( 如n v i d i a 和a t i ) 都在遵循s h a d e r m o d e l2 0 的基础上开发了不同的硬件产品,但对于 应用程序来说,只要按照s h a d e rm o d e l2 0 的规范编写,都可以保证f 确运行 在不间厂商的硬件上。 1 5 。33 d sm a x 插件的开发 为了创建复杂的几何场景,必须依赖于现有的几何建模软件,如3 d sm a x , 武汉理i :人学硕:十= 学位论文 m a y a 等。3 d sm a x 插件是一种软件的扩展技术,大规模的软件在丌发时一般 需要考虑到将来的功能扩展,从而事先设计好了扩展功能的软件接u 。目前 的w i n d o w s 平台上的c o m 技术就是一种实现功能呵扩展的方式,但3 d s m a x 的推出要比c o m 标准要早,所以3 d s m a x 并没有采用c o m 技术,它是通过 在用户动态链接库( d y n a m i cl i n k1 i b r a r n 中实现指定的函数和类,然后由 3 d s m a x 核心来调用用户动态链接库中的这些函数或创建类的实例( i n s t a n c e ) 这 样的方式实现功能扩展。 在本系统中,场景的建立可以完全在3 d sm a x 中完成,使用本系统提供 的k y p c k e x p o r t e r 插件,用户可以:1 、导出编辑好的几何模型;2 、导出场景 中的节点信息;3 、为场景中的某个物体添加额外信息,如质量、密度等。 武汉理f 人学硕, :学位沦文 第2 章系统开发的核心技术 2 13 d 数学理论 向量、矩阵和四元数广泛应用于运动控制和计算机动画中, 说明一下向量、矩阵和四元数的理论。 2 1 1 向量叼 向量有两个基本属性:长度和方向。 向量的长度叫做向量的模。模等于1 的向量叫做单位向量。 向量叫做零向量。零向量的方向可以看作是任意的。 有必要简要 模等于0 的 具有相同的长度和方向的向量被认为是相同的向量。 向量有一维、二维、三维,多维的。不同维数的向量的计算基本是一样 的,除了叉乘之外。这里以三维向量v ( x ,y ,z ) 说明。 1 向量的模 i v i ;扛了万了公式2 1 里o 2 向量的单位化 单位化后的向量为v ( x ,y ,z ) , x 。x n ,y 一y | vj ,z t _ z 和l 3 向量的缩放 v = k v = ( k x ,k y , k z ) ,( k o ) 4 向量的点乘 设有两个向量v i ( x 1 ,y l ,z 1 ) ,v z ( x 2 ,y 2 ,z 2 ) ,点乘是个标量, v l v 2 = x lx 2 + y 1y 2 + z iz 2 公式2 2 结果是个数字。 公式2 4 5 向量的叉乘 设有两个向量v l ( x 1 ,y t ,z 1 ) ,v 2 ( x 2 ,y 2 ,z 2 ) ,叉乘结果是个矢量,是另外一个向 武汉埋l :大学硕十学位论文 2 1 ,2 矩阵5 矩阵足若干量( 数字、函数或数值表达式) 的长方形阵列,这些量称为该 矩阵的元素。单行或单列的矩阵表示一个向量,通常矩阵可以看作为行向量 或列向量的集合。 这里主要讨论4 x 4 矩阵,排列形式如下: m 0 00 1 1 01 1 2 02 l 3 03 1 0 20 3 1 21 3 2 22 3 3 2 3 3 公式2 6 单位矩阵是除了主对角线上元素为1 ,其他元素都为0 的矩阵,如下 1o o1 00 o0 o0 oo 10 o1 ( 这里单位阵用i 表示)公式2 7 1 ,矩阵的转置 矩阵的转置很简单,就是使m d 和m j i 对调,使行向两变为列向量矩阵的排 列形式就如下: m 7 0 01 0 0 11 1 0 21 2 0 31 3 2 0 3 0 2 1 3 1 2 2 3 2 2 33 3 公式2 ,8 2 矩阵相加 两个可以相加的矩阵( s ,t ) 是具有相同的行数和列数的。 相加得到的新的矩阵的各个元素是被加的矩阵的相应位置的各个元素之 和。即: m q = 8 + t u公式2 9 3 。矩阵相乘 两个矩阵可以相乘的前提条件是第一个矩阵的列数等于第二个矩阵的行 数,这样两个矩阵才能相乘,所以矩阵乘法不符合交换律。 矩阵相乘的规则是: 武汉理大学硕士学位论文 m = ( & + ) ( n 是矩阵s 的列数和t 的行数) 公式2 1 0 4 矩阵的逆矩阵 如果矩阵s 和t 存在下面关系, s t = t s = i ( i 是单位矩阵) ,那么s 是t 的逆矩阵,可写为m 。 只有行列式不为0 的矩阵才存在逆矩阵。 旋转矩阵的逆矩阵是其转置矩阵。 平移矩阵的逆矩阵如下: 丁= 1o o1 oo 00 0 t 0 l 1 t 01 丁_ 1 = 100 一r 01 0 一 001 一r o001 公式2 1 1 关于旋转矩阵和平移矩阵的概念在图形变换技术中介绍。 关于矩阵的求法,可以用克莱姆法则,也可以解线性方程组方法,这罩不再详 细介绍。 5 矩阵的幂 一般对方阵进行幂运算。 m “就是m 的逆矩阵: m 。:1 , m 1 :m m ”= m m m ( 个m 相乘) 6 矩阵转化成欧拉角 公式2 1 2 公式2 1 3 公式2 1 4 在有多个矩阵相乘时,矩阵左乘和右乘作用顺序是不同的。比如矩阵 m = r s t ,在左乘时,先发生作用的矩阵是t ,其次是s 和r 。如果是右乘,则 先发生作用的是r ,接着是s 和t 。 假设欧拉角的次序是绕y 轴旋转8 ,再绕x 轴旋转a ,最后绕z 轴旋转丫 则所得的旋转矩阵为: m = m ,m ,m := c e + b d f 爿, 一d e + 8 c f o c f + b d ea d a eb d f + b c ea c oo 公式2 i j 五汉理,:人学硕士学位论文 其中,a = c o s a ,b = s i n a ,c = c o s l 3 ,d = s i n b ,e = c o s ) ,f = s i n 7 。 由m 1 2 = 一b 可以求得s i n a 和c o s a , 由m 1 0 = a f 和m l l = a e 可以求得c o s 7 和s i r e , 由m 0 2 = a d 和m 2 2 = a c 可以求得c o s l 3 和s i n b 。 如果a = 0 ,表示有万向节锁问题存在。欧拉角和万向节锁的概念下节介绍。 2 1 3 四元数4 旧 首先谈谈欧拉角:欧拉角本来是航天飞行模拟器中表示飞机方位的术语, 欧拉角被定义蔓j ( r o u ,f i t c h ,y a w ) ,相当绕x , y ,z 轴的旋转角度。用欧拉角柬表示 旋转是非常方便简洁的。但是它有一个问题:就是会产生万向节锁。 万向节锁是使用欧拉角产生的病态现象。因为最后的旋转矩阵依赖于多次 旋转的先后次序 所以有时候绕一个轴的旋转会被映射到到另外一个轴上去。更 糟糕的是,它甚至使在某个轴上的旋转不可实现。比如,假设一个物体被旋转的顺 序依次是z ,y ,x ,并且绕y 轴的旋转角度是9 0 度,这样,首先绕z 轴旋转,然后绕y 轴旋转,此时,z 轴被转到了x 轴,这样任何在x 轴上的旋转实际上就是在z 轴上 的旋转。 为何要使用四元数? 有两个主要的理由:避免万向节锁,在旋转时允许平滑 插值。刚才说了,万向节锁是一种容易影响到欧拉角表现的现象。本质上说,它 意味着你将在某些时候失去角度上的自由性。这归咎于欧拉角总是以球坐标系 表示。绕着一个轴旋转不能够再适应其它的轴,你可以在一个位置停止,在那 里两个轴的作用相互抵消掉了,那看起来就好像其中一个轴断了一样。四元数 就不会遭受万向节锁的痛苦,因为它不用三个分离的轴表示旋转。使用四元数 的第二个理由,就是其可实现两个状态问的平滑插值。四元数支持球形线性插 值( s l e e , p ) ,那意味着点沿着球体表面传播就像他们从一个方位移到另外一个一 样。 1 四元数概念 一般复数是一个实部和一个虚部,写成c = x + i y 。四元数( o u a t e r n i o n ) 把复 数概念扩充到高维。个四元数有一个实部( 标量部分) 和三个虚部( 向量部分) , 写为: q = s + i a + j b + k c 或者q = ( s ,v )公式2 ,】6 其中,虚数项系数a 、b 和c 足实数;参数s 也是实数,它是标量部分。 8 武汉理j 人学硕士学位论文 参数i 、i 、k 有如下特性: i 2 = j 2 = k 2 = 一1 , 1 一j = - 1 。1 = k ,j k = 一k j = i ,k i = 一i k = j 单位四元数q = ( 1 ,( 0 ,0 ,o ) ) ; 四元数的模:如2 + 口2 + b 2 + c 2 单位化的四元数的特点是其模为1 ,即:s 2 + d 2 + b 2 + c2 = 1 。 2 四元数运算 ( 1 ) 四元数的单位化 s c a l e = s 2 + 口2 + 扫2 + c 2公式2 1 7 s = s s c a l e ,a = a s c a l e ,b = b s c a l e ,c = c s c a l e ( 2 ) 四元数的加法 q 1 + q 25 ( s l + s 2 ,1 , - 14 - v 2 ) ( 3 ) 四元数的乘法 q l q 2 = ( s l s 2 一v l v 2 ,s l v 2 + s 2 v l + v l v 2 ) 表示向量点乘, 表示向量叉乘。 ( 4 ) 四元数的点乘 公式2 1 8 公式2 1 9 类似于矢量的点乘,四元数的点乘也是两个四元数各个分量的乘积之和。 d o t ( q i ,q 2 ) = q 1 sq z s + q r aq z a + q 1 bq 2 b + q r c o a c 公式2 2 0 ( 5 ) 旋转轴和旋转角转换为四元数 已知旋转轴u ( x ,y ,z ) 和绕u 旋转的转角0 ,则 s = c o s ( 0 2 ) v = u s i n ( 0 2 ) 四元数转换为旋转轴( x ,y ,z ) 和旋转角0 0 = 2 a r c c o s ( s ) , 若0 0 ,贝0u x = v a s i n ( 0 2 ) ,u y = v b s i n ( o 2 ) ,i i z = v c s i n ( 0 2 ) ; 若0 = 0 ,则认为绕旋转轴无旋转,可把u = v ( 6 ) 四元数转换为旋转矩阵 由四元数得到的旋转矩阵如下: 武汉理人学硕 :学位沧文 l 一拍2 2 c 2 2 a b + 2 s c 2 a c 一2 s b o 2 a b 一2 s c 1 2 a2 2 c 2 2 b c + 2 s a 0 2 a c + 2 s b0 2 b c 一2 s a0 1 2 a2 2 b 20 o1 ( 7 ) 旋转矩阵m 转换为四元数 有了上面这个矩阵,就可以反求四元数了。 m + m + m 2 2 + m 3 3 = 4 ( 1 一口2 6 2 一c ) t 4 s 2公式2 2 2 由上式可解出s , 由m ,o m0 1 ;4 s c 可解出c , 由m 。一m ,。;4 s b 可解出b , 由m ,一m ,= 4 s a 可解出a 。 这样解出的四元数是单位化的。 f 8 1 欧拉角转换为四元数 假设对应于x 轴、y 轴和z 轴的欧拉角为a 、8 和t , 由旋转轴x 和旋转角a 得到四元数q x ,即: q x - - - ( c o s ( a 2 ) ,( s i n ( a 2 ) ,0 ,o ) ) ; 由旋转轴x 和旋转角a 得到四元数q y ,即: q y = ( c o s ( b 2 ) ,( 0 ,s i n ( $ ,2 ) ,o ) ) ; 由旋转轴x 和旋转角a 得到四元数q z ,即: q z = ( c o s ( y 2 ) ,( o ,0 ,s i n 0 2 ) ) ) ; 最后得到四元数是q = q x q y q z 。 ( 9 1 四元数的球形线性插值 使用网元数最大的好处之一就是可以实现两个旋转之间的插值,并且这 种插值是沿着球面上的最短弧线的。如果用欧拉角来实现这种插值,就会出 现很奇怪的现象,因为欧拉角的三个角度之间是没有相互关系的。 假设已知两个旋转矩阵m o ( 起始矩阵) 、m i ( 终止矩阵) 和插值参数t ( 取值范 围【o ,1 】) ,球形线性插值的方程是 7 】: s l e r p ( p ,q ,t ) = ps、in(,(1-t)o)+qsin(to)171 s i n o 公式2 2 3 首先把m o 和m - 转换为四元数q o 和q ,由四元数的点乘可以得到四元数 的央角0 ,要计算的是插值后的叫元数q ,由球形线性插值的方程就可计算m 1 0 武汉理r 人学硕十学位论文 q :s l e r p ( q a , q 2 , t ) :型蜓掣娑趔螋 s l n 日 2 2 计算机三维图形学 2 2 1 三维物体的表示 公式2 2 4 图形场景包括很多不同类型的物体:树、花、云、石、水、砖、木板等, 由于物体种类的多样性,因此不存在某一种方法能用来描述具有上述不同物 质所有特性的物体,为了产生景物的真实感显示,需要使用能精确地建立物 体特征的表示。 三维图形物体的表示方法通常分为两大类:边界表示( b o u n d a r yr e p r e s e n t t a t i o n ) 和空间分区表示( s p a c e p a r t i t i o n i n i g ) 唑前者用一组曲面来描述三维 物体,这些曲面将物体分为内部和外部:后者用来描述内部性质,将包含一 物体的空间区域划分为一组小的、非重叠的、连续的实体。尽管有很多方法 来描述三维图形,但在实时计算机三维图形中运用得最普遍的方法是用一组 包困物体内部的表面多边形,该法属于前述边界表示法。由于所有的表面以 线性方程形式加以描述,因此会简化并加速物体表面的绘制和显示。因此, 多边形描述通常被称作“标准图形物体”。某些情况下,多边形表示是唯一可 用的,但很多图形包也允许以其它方法对物体加以描述,如样条曲面,它在 被转换到多边形表示后再进行逼近处理,即将曲面分成更小的多边形面片加 以改进。 本系统采用的方法是多边形逼近法,因为这是目前图形硬件唯一支持的 三维物体表示法,三维物体由三角形面片构成,通过顶点数组和三角形索引 这样的数据结构来存储。 2 2 2 几何变换 三维图形学中的几何变换的目的是将物体从一个坐标系映射到另外一个 坐标系。比较典型的情况是将物体从建模坐标变换到世界坐标下,一般说束, 三维图形学中的几何变换大致可分为平移、旋转和缩放,除此之外还有反射 和错切等特殊的合成变换。在传统的处理方式中,一般把变换分为三个步骤: 第一步是世界变换,这一步的目的是把几何模犁从建模坐标变换到世界 坐标。比如使用建模软件创建一把椅子模型时使用的是局部参考坐标,刘椅 武汉理1 人学硕j :学位论文 f 的建模坐标,而椅子需要摆放在场景中的任何位置,这就是通过世界变换 矩阵实现的。 第二步是照相机变换,这一步的目的是将在世界坐标下的几何模型变换 到照相机坐标下。由于在实际应用中,常常通过不断改变照相机位置来实现 场景漫游,所以照相机变换从几何变换的过程中独立出来,以方便应用程序 更加灵活的控制照相机。 第三步是投影变换。这一步的目的是把经过了上两步变换的几何模型投 影到屏幕坐标上,同时也生成每个顶点的深度信息。投影变换的目的就是将 三维几何模型映射到屏幕空间上,从而二维图像的生成,即光栅化做准备。 在以上的步骤中,第一步和第二步合称为视图模型变换。 以上就是针对静止的模型所需要的图形变换过程。如果针对运动的模型 或者要从不同的视角来观察一个模型,则需要不断地进行视图模型变换。在 这里需要指出的是,随着三维图形学和图形硬件的不断反展,有时并不需要 完全按照传统的变换方法来变换三维图形,比如屏幕空间的特效( s c r e e ns p a c e e f f e c t ) ,点精, 灵( p o i n ts p r i t e t e ) 等,这些在本系统的设计中得到了体现。 2 2 3 光照和材质 当观察者观看三维物体的照片时,他们不仅仅看到的是物体正确的几何 属性,还应该看到真实感的物体表面属性。人们能够看到物体,是因为人的 视觉系统接受到了光源通过物体表面反射过来的光子( p h o t o n ) 【q 】,在三维计算 图形中,光源般可以分为三种类型:方向光、点光、和聚光 1 4 】,方向光可 以理解为一盏放在离物体无穷远处的点光源,所有由此光源出发抵达物体处 的光线都是平行的,太阳光即是较典型的方向光。点光和聚光都属于位置光 源( p , o s i t i o n a ll i g h l 【) ,因为它们除了具有方向信息以外,还具有位置信息。点光 町以理解为个往四周发射光子的无穷小点。实际上,真实的光源是不可能 归于点光或聚光的,因为真实的光源都具有一定的面积或体积( a r e a0 1 v o l u m e ) ,所以真实光源下的影子都是软边界的( s o f te d 黔d ) 【。 材质是描述入射光线如何在物体表面作用的数学方法,目前发展比较成 熟的是b r d f ( b i d i r e c t i o n a lr e f l e c t i o nd i s t r i b u t i o nf u n c t i o n ) ) 漠型【5 1 ,b r d f 模 型通过积分的形式来描述物体上无穷小点对入射光线的吸收和反射情况, 在理沧上可以描述现实中绝大多数的光学现象。在计算机实时三维图形中, 武汉理1 人学硕士学位论文 一_ - _ p - - _ _ _ 一 通常采用简化的光照模型,如著名的p h o n g 模型和早期的三维图形加速辟支 持的g o n r a u d 模型,虽然它们提出要比b r d f 模型早,但都可以由b r d f 模 型简化得到。 以上简要地介绍了光源和材质,实际上光源和材质均属光照模型的范畴, 材质模型和与之匹配的光源模型的统一即是光照模型。在实时计算机三维图 形中,光照通常被分为环境光( a m b i e n t ) 、漫射光( d i f f u s e ) 、反射光( s p e c u l a r ) 和 自发光r e m i s s i v e ) i5 1 ,g o u r a u d 光照模型是早期硬件所支持的唯一光照模型,当 前随着图形硬件技术的飞速发展,逐像素的p h o n g 光照模型,或更为复杂的 光照模型都可在可编程图形硬件上实现。 g o u r a u d 和逐像素的p h o n g 模型都是局部光照模型( 1 0 c a li l l u m i n a t i o n m o d e l l ,而不是全局光照模型( g l o b e i l l u m i n a t i o nm o d e l ) ,全局光照模型和局部 光照模型的主要区别是前者在光照计算中考虑了光线在物体表面上的散射 ( s u b s u r f a c es c a t t e r i n 曲,以及光线的多次折射和反射,在目前的图形硬件上能 够实现的只是局部光照模型,虽然目前有不少用图形硬件实现了全局光照模 型的方法,但这些方法都需要通过预计算( p r e c o m p u t e ) 才能达到实时性,也存 在着很多限制,如p r t ( p r e c o m p u t e d r a d i a n c e t r a n s f e r ) 方法要求三维场景中除 了光源以外,其它所有物体必须是静态的。 在本系统中,除实现了g o u r a u d 和p h o n g 光照模型外,还实现了基于b r d f 各项异性材质等特殊光照效果。 2 3 可编程图形硬件 2 3 。1 图形硬件的发展过程 图形硬件是最近几年才发展起来的一个热门领域,目前仍在不断发展中。 消费级别图形硬件的鼻祖是3 d f x 公司在1 9 9 6 年推出的v o o d o o 显卡,最早的 v o o d o o 显卡仅支持光栅化,并不支持光照和几何变换,所有的几何和光照计 算都是放在c p u ( 中央处理器) 上完成的1 2 3 】,由图形硬件去完成光栅化过程中 的计算,如像素插值( 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 l 等, 包括最后阶段的填充和绘制均是由图形硬件来完成。从1 9 9 6 年至1 9 9 9 年, 图彤硬件在架构上并未发生很大变化,其问有除3 d f x 外的其它公司也推出了 自己的图彩硬件产品,工作原理和功能类似于v o o d o o 系列,如n v i d i a 的r i v a 武汉理i :火学硕士学位论文 1 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 o o3 仅支持1 6 b i t 颜色输出,3 2 b i t 颜色输出在那时是 具有革命性的,这谴l 奠定了图形硬件发展标准的基础。 1 9 9 9 年年底前,所有的图形硬件均不支持几何变换和光照的功能,n v i d i a 公司推出的g e f o r c e2 5 6 改变这种局面,g e f o r c e2 5 6 将几何变换和光照 ( t r a n s f o r ma n dl i g h t i n g ,简称t n l l 引入至图形硬件,从而使c p u 从繁重的计 算中解脱出来。由于图形硬件在设计时完全基于s i m d ( 单指令流多数据流) 的处理器模型,所以图形硬件在进行几何变换和光照时有通用功能处理器无 法比

温馨提示

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

评论

0/150

提交评论