




已阅读5页,还剩62页未读, 继续免费阅读
(计算机软件与理论专业论文)3d图形引擎系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理1 :人学硕士学位论文 摘要 游戏g l 擎是游戏的心脏,决定游戏的各方蕊性能,在玩游戏时,玩家骈 钵验蜀豹瓣谤、关卡、美工、音承、搽箨等蠹豢都是鸯游戏豹弓| 擎蠢接控翱 的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑程一起,在赠台 指挥它们实时、有序地工作。 图形瀵染器子系绞嬉游戏弓l 擎瓣最重要组成部分,当3 转模型到侔突肇 之后,美工会按照不同的面把材厦嫩胬赋予模塑,这槽当予为骨骼蒙上皮肤, 最后再通过渲染器子系统把模型、幼画、光影、特效等所有效果实时计算出 来并展示谯屏幕上。浚染器子系统柱游戏引擎的所有部件当中是最复杂的, 它翡强大与否壹接决定蓉嚣稼戆最终输密痿量。 本文将对游戏引擎的组成架构做系统的探索研究,并对3 d 游戏引肇的 核心部件所采用的技术进行详细分析。通过对演染器的实现做详细研究,初 步建立起一个3 d 游戏l 擎的图形渲染器子系缀。 第一牵绪论。主饕介绍3 d 游戏g | 擎豹基本缀戚部分,势对国内努奁3 d 游戏引擎技术上的发展水平及现状做一定研究,此外还分析了做此类研究工 作的目的及意义。 第二零系统懿拔心搜本。惫分键整形算法孛霉震兹数攀璎论墓磴:矩 阵变换,三维向量代数,四元数基础,随后介绍了图形硬件和图形应用编程 接口的发展,并从应用角度分析了图形软硬件的发展趋势。翻前主要的图形 编程接口a p l 是o p e n g l 及d i r e c t xg r a p h i c s ,本文着重介绍了这两种图形编 程接霜a p l ,分褥了矜i r c 髓xg 臻睡i c s 豹蒜系结襁。 第三灏图形渲染器子系统。者霆从图形渲染器的系统架构、常用功能 及算法方颟进行详细分析,具体讲解3 d 图形管线、层次场撩的组织与表现 形式、l o d 多层次细节绞理技术的应弱和角色动灏。图形渲染嚣包括了坐标 系统,投影交换,摄像规模墅和顶点与面豹属波管理等主袋部分。 第四颦研究工作总结。对以一匕各个章节中所提到的技术方法进行总结 并指出系统的创新点,今后的发展方向及有待激进的地方。 【关键调】图形弓l 擎,d ,3 d 餐线,爱惫动藏 武汉理工大学硕士学位论文 a b s t r a c t g a m ee n g i n ei st h ec o r eo fg a m e i td e c i d e st h ep e r f o r m a n c e so ft h eg a m e f o re x a m p l e ,a l lt h es c e n a r i o ,t o l l - g a t a ,a r td e s j g n ,m u s i ca n d0 p e r a t i o nt h a t p l a y e r se x p e r i e n c e da f ec o n t r 0 1 l e db yg a m ee n g i n ed i r e c t l y i tp e r f b r m st h er o l e o fm i d f i e l de n g i n e i nt h ew a yo fb i n d i n ga l lt h ee l e m e n t st o g e t h e r i tm a n a g e sa h t h ep a r t so r d e r ly t h em o s ti m p o r t a n tp a ni sr e n d e r i n gs y s t e m w h e n3 dm o d e l sa r em a d e , a r t i s t sw i l la d dd i f f e r e n tm a t e r i a l sa c c o r d i n gt oi t ss u r f a c e s t h i si st h eo p e f a t i o n o fc o v e r i n gs k i nt os k e l e t o n a f t e rc a l c u l a t i n gt h es p e c i a le 玎c c t so fl i g h t ,s h a d o w 柚da n i m a t i o n ,t h eg a m ee n g i n ed i s p l a y sa l lt h em o d e l si nt h es c r e e n r e n d e f j n g s y s t e mi st h em o s tc o m p l e xp a r to fg a m ee n g i n e i td e c i d e st h eq u a l i t yo f g r a p h i c so u t p u t i t h i st h e s i s ,ih a v ed o n es o m er e s e a r c h e si n t ot h ec o m p o n e n t s o fg a m ee n 舀n ea sw e l la st h et e c h n o l o 酎e sa d o p t e db yt h ec o r e id e v e l o p e da b a s i c3 dg a m ee n g i n et h r o u g ht h er e s e a r c hi t ot h er e n d e r i n gs y s t e m c h a p t e r1 ,a b s t r a c t t h ec o m p o n e n t so f3 dg a m ee n g i n ew e r ed e s c r i b e d a n di t ss t a t u so f o w a d a y sw a si n t r o d u c e d ,s t i l lt h es e n s ea n di t sp u f p o s e c h a p t e r2 ,c o r e1 e c h n o l o g yo fg a m ee n g i n e f i r s t ly ,t h em a t ht h e o r yu s e d i nt h ee n g i n ew a sd e s c r i b e d f o re x a m p l e ,m a t r i x1 y a n s f o r m ,3 dv b c t o r , q u a t e r n i o n ,s e c o n d l y , i n t r o d u c e dt h e d e v e l o p m e n t o f g r a p h i c s c a r da n d p r o g f a m m i n ga p in o w a d a y sa n dt h e i re v o l u t i o n s 1 o d a y ,o p e n g la n dd i r e c t x g r a p h i c si st h em o s tu s e f i l lg r a p h i c sa p il i b r a r y i nt h i sc h a p t e r ,ia n a l y z e dt h e s t r u c t u r eo fd i r e c t xg r a p h i c s c h a p t e r3 ,g f a p h i c sr e n d e r i n gs y s t e m t h e f r a m e w o f ko f 酽a p h i c s r e n d e r i n gs y s t e ma n di t sa r i t h m e t i cw e r ed e s c r i b e d e s p e c i a l l y3 dp i p e l i n e , m a n a g e m e n ta n dp r e s e n t a t i o n o fs c e n el e v e l ,l o dt e x t u r e t e c h n o l o g ya n d c h a r a c t e ra n i n l a t i o n c h a p t e r4 ,s u m m a r y as u m m a r yo ft h ej o b ,i n s u f e c i e n c i e s ,i n n o v a t i o na n d t 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 st h e s i sw e r em a d eb ym e 【k e y w o f d s 】g r a p h i c se n g i n e ,l o d ,3 dp i p e i n e ,c h a r a c t e ra n i m a t i o n l i 武汉理j 二大学硕士学位论文 1 。 问题的提出 第 章绪论 计算机实时圈形技术是计算机三维游戏,计算机辅助设计与制造 ( c a d c a m ) 、数字媒体制作( d c c ) 、虚拟现实筹领域中的基本研究问题。随着 这些虚鲻领域豹飞速发展,实懿淀染鼓东曼缮越来越重要“。 基于圈形处理嚣( g r a 曲i e 羚o c e s s i n gu n i t ,简称g p u ) 的实对渲染技术 的研究正是在当前谗种环境下孕商而生。本文研究大规模场景及复杂光照环 境下实时渲染技术,谗初步建立超一个宴时浚染图形系统。 1 2 课题来源 掰选课题的题隧是分布交互三维视景孳亍必一特征建模方法磷究:零予羹一 特征建模工具的开发。本课题褥铡国家自然科学基金和中圃科学院计算技术 研究所锣能信息处理开放研究实验室项目资助。 。3 图内外研究动态和水平 国外比较成熟的商用引擎如u n r e a l ,以及专业的开发引擎的公司,他们 在游戏弓 擎上已经形成了非常成熟的技术群,这些关键技术已经残先了藏、监 梳密,溪内在这方瑟鞍落后。嚣蓊黉肉技术在二维弓| 擎方瑟已经成熟越来了, 如网易的大话西游便是二维引擎成功应用的代表作,目前图内正在向三维引 擎开发应用方向发展。从u n r e a l 弓i 擎可以看出国际上正在向虚拟现实方面靠 近。 1 4 研究的目的和意义 嚣彝誊网络三维游戏正在不戮发震,随着矮伟技术静不颧成熟,答枣孛晕些 年的时候只能由软件爿能实现的簿法现在己缀能由硬件流水线来完成,游戏 武汉理工大学硕士学位论文 技术f 在不断的向前发展,现在游戏引擎已经发展到将虚拟现实技术运用到 自身,达到前所未有的高度。目前国内市场上游戏占主导地位的是国外的游 戏开发商开发出来的游戏产品,这些游戏产品中体现的文化不是反映中国的 历史背景的文化,目前国家已经大力投资国产游戏行业的发展,游戏行业已 经作为一个新兴的行业,不断的发展壮大起来。 可是由于国产的游戏目前才发展起来,到2 0 0 4 年,才出现了众多的游 戏开发公司,这些公司的技术水平相对落后,游戏开发中游戏引擎是核心技 术,好的游戏引擎决定了游戏产品的质量。所以研究开发游戏引擎是必然要 走的发展道路。 1 5 本文用到的关键技术 1 5 1 计算机图形学及虚拟现实技术 计算机图形学和虚拟现实技术是实时图形技术的理论基础,同时也是图 形硬件设计时参考的准绳。光照模型、几何变化、视觉模型和阴影技术等都 是计算机图形学理论的应用。虚拟现实技术在显示软硬件、人机交互理论领 域主导着实时图形技术的发展。文章所涉及到的技术都是建立在计算机图形 学和虚拟现实理论基础之上。 1 5 20 p e n g l 与d ir e c t x 0 口e n g l 是图形硬件的软件接口”1 。0 p e n g l 中包括大约2 5 0 个不同的函数, 它是作为一种新型的接口来设计的,它与硬件无关的特征,使其可以在不同 的硬件平台上实现。具有良好的跨平台性能,但是0 p e n g l 没有包括执行窗口 任务或获取用户输入的命令,所以,程序员必须自己解决这些问题。 d i r e c t x 是微软公司开发的综合性的视频软件开发包0 1 。主要包括如下 三个组成部分:1 、d i r e c t xg r a p h i c s ,由d i r e c t d r a w 与d i r e c t 3 d 组成。2 、 d i r e c t i n p u t ,提供读取各种输入设备,完全支持力反馈设备。3 、d i r e c t s o u n d , 用于开发声音程序,通过驱动声音设备来制造出3 d 音效。 武汉理工大学硕十学位论文 1 5 33 d sm a x 插件技术 戈了翻建复杂瓣凡德场景,必须依赖于嚣露豹凡 霹建模软件,如3 d s 溉x , m a y a 等。3 d sm a x 插件是一种软件的扩展技术,大规模的软件在开发时一般 需要考虑剐将来的功能扩展,从而事先设计好了扩展功能的软件接口。目前 霉i n d 。捧s 乎台上豹c o 鹾鼓术裁是一耱实理凌藐掰扩震魏方式,毽3 瑟s 麓a x 豹 推出要比c o l ( 1 标准要早,所以3 d sm a x 并没有深用c o ;f 技术,它是通过程用 户动态镳按库( d y n a m i cl i n kl i b r a r y ) 中实现指定的函数军h 类,然后由3 d s m a x 核心柬调用用户动态链接库中的这些函数波创建类鲍实例( i n s t a n e e ) 躲 方式实魏功麓扩展。 在本系统中,场景的建立是在3 d sm a x 中完成的,使用提供的3 d s e x p o r t e r 插件,用户可以:1 、导出编辑好的几何模型;2 、导出场景中的节 点痿塞。 1 5 4 设计模式与软件工程方法 设计开发游戏弓| 擎是一个庞大瓣工程,嚣臻曩到设计援式与软 孛工羧方 法,由于本系统的开发语言是e + + ,那么采丽蕊向对象的软件设计方法是 必须的。而设计面向对象软件一般是比较困难的,设计可复用的面向对象软 件就更加困难。你必须找到相关的对象,以适当的粒度将它们归类,再定义 类豹搂秘秘继承瑟次,建立对象之润熬基本关慈。 设计模式,就是描述了一个不断重复发生的问题以及解决该问题方察的 核心。一般模式有四个基本要素:l 、模式名称,2 、问题,3 、解决方案,4 、 效豢。凌本系统的开发设计当孛,主要鼹裂设诗模式孛提爨熬翅建型模忒, 所谓剖德型模式是指抽象了实例化过程,它们帮助一个系统獭立于如何创建、 组合和表示系统的那燃对象。 刨建型模式,主婴有如下五个缀成部分: 1 纛b s t r a e tf a c t o r y ( 撞象王厂) ,提供一个越建系绫籀关或相嚣依赖 对象的掇口,而无需指定它们具体的类,使用a b s t r a c tf a c t o r y 模式的条件: 一个系统疆独立于它的产品的创建、组合和表示时,需要多个产品系列中的 一令寒聪嚣融,特别当傣哭想旋缨一令产品露, 嚣足想显示它霞豹接口嚣不 是实现时。 3 武汉理工炎学硕士学骰论义 2 b u “d e r ( 生成器) ,将一个簸杂对象的构建与它的表示分离,使得同 样戆秘建道程霹鞋创建不露劈表示。逶蘑于当截建复杂对象的算法应该独立 于该对氖的组戒部分戳及它稍匏装配方式时,警构造过程强颁允许被构造豹 对象有不同的表示时。在本系统中大量应用了s t l ( 泛型算法库) 中的数据结 梭,并将这些泛型算法废尾于不圜憋对象集。 、 3 ,f 8 e t 簖y 蘩e 摭o d ( 工厂方法) ,定交一个爆予嫠建辩蒙麓接器,谴予 类决定实例化哪一个炎,本模式使一个类的实例化延迟到箕予类。 4 p r o t o t y p e ( 原型) ,用原型窝例指定创建对象的种类,并且通过拷瓜 这些豢墅截建囊懿霹象。当一个系统痤该独立手它豹产品截建、捺或霜裘示 砖,便采用此设计模式,以及当簧实例化的类楚在运行破措瘛对,铡弛本系 统的插件箭理部分采用的便是此模试。 5 s i n g l e t o n ( 单件) ,保证类仅有一个实例,共提供个公共蛉全趱涛 窝接强。对一些类来说,其有一个嶷溅是黎重辫翡,懿系统魏痰菝实铡,霖 么就必须只有一个实例。可以使用s i n g l e t o n 模式的情况怒潮某个类只能有 一个实例,并提供一个众赝周知的访问点。s i n 9 1 e t o n 类定义如下: a a 髓s 诬婪e t 雠 。 p u b i i c : s t a t i cs j n g l e t o n8i n s t a n ( ) ; s 濂g l 。t o 旌o ; s 耋a ks 主n 嚣e t 瓣。一i 丑s 毫磊鞋e e ; ) ; s j n g l e t o n + s i n g l e t o n - - i 蛆s t a n c e = n u t 上; s 穗g l e 妻。丑8s i 珏婪e l 船:l 鼗蛙a n 魏0 i f t j n s t a n = = n l u j n s t a n c e = n e ws i n g l e t o n 0 ; 礴妇r 珏- i 珏s a n e 彰 在设汁开发一个大型软件系统时需要用到软件工程方法,软件工程的框 架可概攒为:匿标、过稷和原则。 诅) 鞍蛰王程匿掭:生产其商正确夔、毒嗣憷鞋及开镶台宜戆产鑫。正 确性指软佟产品达到獭期功能的稷液。可用往擒软件基本结构、实现及文档。 4 武汉理j :太学硕士学位论文 ( 2 ) 软件工程过程:生产一个黻终能满足需求且达到工稷目标的软件产 器所需癸麓步骧。软 睾z 程遘程圭蚕包瑟瑟发过摇、运车过程、维护遵摇。 它们覆靛了需求、设计、实现、确认以及维护警活动。需裳活动包括翱舔分 析和需求分析,需求分析生成功能舰约。设计滞动一般包括概要设计和详细 设计。檄聚设诗建立整个软件系绫始梅,包括予系统、模块娃及枢关层次的 谖瘸、簿一模夔魏接黧定义。详缀设诗产生程痔爱哥臻秘壤浃说葫,魍捺每 一模块中数粥结构说明及加工描述。实现活动把设计结果转换为可执行的程 序代码。确认活动贯穿予整个开发过程,实现完成后的确认,保证最终产品 涟足焉户酌要求。缭护溪葫包括健麓过程孛静扩宠、修蒗与竞善。 ( 3 ) 软件工程稳聪则是指圈绕z 程设计。工程支持以及工程管理在软件 开发过程中必须遵循的原则。 本系绞在设计开发过程中是在吸收了跌上掇到的软,f 牛王程愚想之盛,滓 将这耱瓣惩应震予开袭赛戥中,怒舔究秀发活动起了臻导撂溺。 “ 5 茎鋈垄玉銮兰孽圭登窭黧壅 第2 章系统开发的理论基础 2 13 d 数学理论 起羹、矩薄弱爨元数广泛瘦爝予运囊控裂帮毒幸箕羲凄溺巾,鞋下箍巢谎 鞠商量、矩阵翻西元数的理论。 2 1 向量 囊爨霄嚣令基本瓣牲:长安鞠方商。 向礅的长度叫做向最的模。横等于1 的向瀑叫做单位向鼹。模等于o 的 向量叫做零向量。零向量的方向可以看作是任意魄。 其肖辐曩翁长度秘方彝鼗舞羹被诀为是穗麓戆两量。 向鬣商一维、= 雅、三维,多雉的。不同缭数的向量的计算除了叉聚之 外,基本是一样的。 2 , ;2 矩降 矩阵是若干量( 数字、函数线数值表达式) 的长方形阵列。这些量称为该 矩阵的元索。单季亍或单列的矩阵蔽示一个囱量,避棠矩障磷跌看作为褥囱爨 鬣弼彝曩簸集台。 遮爨主要讨论4 4 矩阵,排剐形式如下: 赫一 m 磊f 糙 掰勰 m 。3 0 肘m 磊f l 磊f 2 l m 3 l 肘 f 王3 掰 肘3 3 l 。镫陲翦逆矩阵 如果艇阵s 窝零毒在下嚣关蒸, s t t s = i ( i 是单位矩阵) ,那么s 是t 的浇矩阵,可驾为丁。 只商行列式不为o 的矩阵才襻在逆矩阵。 旋转矩碡斡遂短阵是英转置艇阵。 平移矩薄的逆斑薛如下: 岙 2 。j 武汉理丁大学硕士学位论文 丁= 100 o10r o 01r o 0 01 丁- 1 ; 10 0 一t 01 0 一l o 01 一r 0 0 01 ( 2 2 ) 关于旋转矩阵和平移矩阵的概念在几何变换技术中介绍。 2 矩阵转化成欧拉角 在有多个矩阵相乘时,矩阵的左乘和右乘的作用顺序是不同的。比如矩 阵m = r s t ,在左乘时,先发生作用的矩阵是t ,其次是s 和r 。如果是右乘, 则先发生作用的是r ,接着是s 和t 。 假设欧拉角的次序是绕y 轴旋转b ,再绕x 轴旋转a ,最后绕z 轴旋转 y 则所得的旋转矩阵为: i :芦一c 篙艇竺 m 。m y 蚝也2 一d e b c fd f b c ea c 【 o oo 其中,a = c o s a , b = s i n a ,c = c o s 8 ,d = s j n b , e = c o s y , 帆,坂尥分别是绕y ,x ,z 轴的旋转矩阵 由m 1 2 = b 可以求得s i n a 和c o s a f = s i n v ( 2 3 ) 由m 1 0 = a f 和m 1 1 = a e 可以求得c o s y 和s i n y 由m 0 2 = a d 和m 2 2 = a c 可以求得c o s b 和s i n b 如果a = 0 ,表示有万向节锁问题存在。欧拉角和万向节锁的概念下节介 绍。 2 1 3 四元数 首先谈谈欧拉角:欧拉角本来是航天飞行模拟器中表示飞机方位的术语, 欧拉角被定义为( r o l l ,p i t c h ,y a w ) 。当刚体绕某固定点转动时,如果瞬时转动 轴永远通过某固定点,称为定点转动。这时刚体在空间的位置,只需确定瞬 时转动轴的位置,以及刚体绕该轴的转角。设x o y z 为空间固定,x o v z 为 固定在刚体的动坐标系。o z 。轴为刚体瞬时转轴。空间x y 平面和刚体x y 平 面交线o n 称为节线。如图2 1 所示: 7 武汉毽二【:大学硕士学位论文 图2 * l 欧拉角( o ,由,平) 氍) # 热,z 转笺z 霉建缒角囊;z 辘绕蕊线蟾运动称淹章凑,e 称灸耄穑受。 犯参角,x 辘甍节线静n 秘煮囊。嚣l j 俸z 辘绕z 辘憝运蚤猕强遂凌,枣栋爻 进劫角。巾角在x y 平面内。 ( 3 ) 1 l r 角,节线0 n 刘豫轴的角度,称为自转熊。世角在x l y 平面虑。 熏欧控惫表示绕x y z 辘鲍瓣转囊麦是嚣露餐洁黎,德楚它有一个溺露: 就是会产生万向节锁。万向节锁怒使用欧拉角产生的病态现藩,因为最衙的 旋转矩阵依赖于多次旋转的先后次序,所以有时候绕一个轴的旋转会被映射 鬟另夕 一个羲上去。爱壤糕薛是,它甚至健在黎个疆上黪旋转不霹实现。魄 翔,缓设一夺耪藩靛旋转蕺颓穿依次是oy x + 劳量绕y 鞫耱旋转角度怒9 。 度,这样,首先绕z 轴旋转,然席绕y 轴旋转,此时z 轴被转到了x 牟由, 这样侄懈在x 轴上的旋转实际一b 就是在z 轴上煦旋转。 为衡蘩捷簧露元数? 套嚣令主要靛理鸯:避受万窝节镂,在囊转霹龛诲平 滑插值。万向节锁怒种容易影婀到欧拉角衰溉的现象。冰质上说,它崽昧 着你将犍! 某些时候失去角度上的自由性。这归枯于欧拉角总足以球坐标舔表 示。绕蕊一令辘旋转不髓够霉逡瘟其它懿辘,祢霹夔在一个艇置停止,在器 量嚣个辘的稚弱稳耍抵潴捧了,郡看起来赣好像萁孛一个辅断了一样。圈元 数就不会遭受万向节锁的痛苦,阁为它不用三个分离的轴畿示旋转。使用四 元数的鹦二个理由,就是其可实现两个状态阕艟平滑插徨。四元数支持炼形 线连接国蔓,鼙塞昧蓉患沿着黎悸裘覆蒋蕹裁像谯餐簌一个方往蓼交晏井一令 方位一样。 甚 武汉理工大学硕士学位论文 1 四元数概念 一般笺数是一个宴帮秘一令裳赘,写残c = x + i y 。匿元数q u a e m i o n ) 把复数概念扩充虱高绒。一个四元数有一个实都( 标量部分) 和三个虚部( 向擐 部分1 ,写为: 唾= s + i a + j b + k c 或者q = ( s ,v ) ( 2 。4 ) 萁中,虚数顼系数a 、b 窝e 楚实数;参数s 氇是实数,玄是标量帮分。 参数i 、i 、k 有如下特一陡: i 2 = j 2 _ k 2 = 1 霉= l i = l ( ,l l 【= - 瓣= i ,l ( i = 一i l 【= l 单位四元数q = ( 1 ,( o ,o ,o ) ) 四元数的模:山2 + 口2 + 6 2 + c 2 单位化的醒元数的特点是其模为b 即:如2 + # 2 + 务2 + e 2 = l 。 2 。嚣元数运算 ( 1 ) 四元数的单位化 s c a l e = s2+42 + 62 + c 2 ( 2 5 ) s = s 砖e 砖e ,a = 彰s e a l e ,b = w s e a l e ,e 嚣影s e 蘸e 犯) 圆元数的加法 q 1 + q 2 = ( s 1 + s 2 ,v 1 + v 2 ) ( 2 6 ) f 3 ) 瞪元数的乘法 q l q 2 茹( s l s 2 一v l v 2 ,s 1 v 2 + s 2 v i + v 1xv 2 ) ( 2 - 7 ) 表示向量点乘 表示向量叉乘 强) 瓣元数懿点菜 类似于矢黄的点乘,四元数的点乘也是两个网元数各个分曩的乘积之和。 d o t ( q 1 ,q 2 ) = q l 。q 2 s + q l aq 2 a + q l b q 2 b + q l cq 2 c ( 2 8 ) f 5 ) 旋转辜蠡和旋转角转换为霞元数 已知旋转辘h ( x ,y ,z ) 和绕旋转豹转建8 ,燕| j s = c o s ( o 2 ) ,v = u s i n ( o ,2 ) 四元数转换为旋转轴( x ,y ,z ) 和旋转角e = 2 8 羚s 若e o ,贝8 珏x = v a ,s i n ( e ,2 ) ,1 1 y = v b ,s i n ( 静2 ) ,h z = v e ,s i n ( 副2 ) ; 9 武汉理二大学硕十学位论文 若0 = 0 ,则认为绕旋转轴无旋转,可把u = v ( 巍元数转换为旋转矩阵 由豳元数得蓟的旋转矩阵如下: 1 一拍2 2 c 2 知6 十2 辨 瑟c 一貊垂 0 2 口扫一2 s c l 一2 n2 2 c 2 2 6 c + 勉n o 2 口c + 2 站,o 扬c 一2 船o l 一2 群2 2 6 20 o1 ( 2 。9 ) ( 7 1 旋转矩阵m 转换为四元数 有了+ 上露这个矩黪,就可以爱浓霾元数了。 m + m l l + m 2 2 + m 孙端4 ( 1 一露2 一扛2 一c 2 ) 叠4 s 2 ( 2 1 0 ) 由上斌可解出s 由m j 。一m m 一4 s c 可解出c 由m 。一殛。= 4 s b 可解塞b 由m 。一m 。= 4 s a 可解出a 这样解出的四元数是单位化的。 ( 8 ) 欧聿茭惫转换为甄元数 假设对应于x 轴、y 轴和z 轴豹欧拉角为a 、b 和7 , 由旋转轴x 和旋转角a 得到四元数q x ,即q x = ( c o s ( a 2 ) ,s i n ( a 2 ) ,0 ,0 ) ) ; 由旋转辘x 和旋转蕉8 得到四元数q y ,即q y = ( c o s ( b 2 ) ,( o ,s i n 2 ) ,0 ) ) ; 宙凝转辘x 和旋转焦a 缮蘩疆元数q z ,帮q z = ( s 秘,2 ) ,国,o ,s i n 稃艨) ) ) ; 最后得到四元数怒q = q xq yq z f 9 1 四元数的球形线性插值 使瘸霆元数最大瓣好处之一藏怒可鞋实瑗鼷个旋转之遴鹩矮僮,势藏这 种插值怒沿着球面上的最短弧线的。如果用欧拉角来实现这种箍值,就会出 现很奇怪的现象,因为欧拉角的三个角度之间魑没有相互关系的。 假设已知两个旋转矩阵m o ( 起始矩阵) 、m 1 ( 终止矩阵) 积撼值参数t ( 取值 范围 o ,l 】) ,球形线瞧播值的方程楚哆 研e 伊( 川,f ) :地蜓掣攀 ( 2 11 ) s l l l 盯 营先熬m 0 和醚l 转换为蹬元数q o 帮q l ,交强元数懿患黍可鞋缮到露 元数的夹角o ,要计算的是插值瑶的西元数q ,由球形线性撼值的方程就得: 1 0 武汉理工大学硕士学位论文 q :龇,p ( 孙f ) ;型盟掣掌地螋 ( 2 1 2 ) s l n 日 2 2 计算机三维图形学 2 2 1 三维物体的表示 图形场景包括很多不同类型的物体:树、花、云、石、水、砖、木板等, 由于物体种类的多样性,因此不存在某一种方法能用来描述具有上述不同物 质所有特性的物体,为了产生景物的真实感显示,需要使用能精确地建立物 体特征的表示。 三维图形物体的表示方法通常分为两大类:边界表示和空间分区表示, 前者用一组曲面来描述三维物体,这些曲面将物体分为内部和外部;后者用 来描述内部性质,将包含物体的空间区域划分为一组小的、非重叠的、连续 的实体。尽管有很多方法来描述三维图形,但在实时计算机三维图形中运用 得最普遍的方法是用一组包围物体内部的表面多边形,该法属于前述边界表 示法。由于所有的表面以线性方程形式加以描述,因此会简化并加速物体表 面的绘制和显示。因此,多边形描述通常被称作标准图形物体。某些情况下, 多边形表示是唯一可用的,但很多图形包也允许以其它方法对物体加以描述, 如样条曲面,它在被转换到多边形表示后再进行逼近处理,即将曲面分成更 小的多边形面片加以改进。 本系统采用的方法是多边形逼近法,因为这是目前图形硬件唯一支持的三 维物体表示法,三维物体由三角形面片构成,通过顶点数组和三角形索引这 样的数据结构来存储。 2 2 2 几何变换 缩放定义缩放三角阵。2 。出。:1 其中饿 0 。当幽谢l _ 如时,便 是统一缩放矩阵。 旋转,当给定矩阵r 满足:r 。1 积7 ,r 称为旋转矩阵,并定义斜对称矩 武汉理工大学硕士学位论文 阵s = 巴:1 1 【“。a 。j 则绕向量云,( h 叫州2 ) 旋转e 度的变换矩阵如下: r = + s i n ( e ) s + ( 1 一c o s ( 0 ) ) s 2 ( 2 1 3 ) 平移,当把一个向量x 平移一个给定的位移量丁时,则y = x + t ,在r 3 空间中我们不可能直接用一个y ;mx 的线性变换式来表达,但是对r 4 空间 中的向量平移,我们却可以找到如下一种线性变换表达r4 空间中向量的平移 变换,即:0 0 ,y o ,z o ,w 0 ) 0 1 ,y 1 ,z 1 ,w 1 ) ,原理如下: 给定4 4 的矩阵忙 a , ,( o i ,j 3 ) 其中岛。= 1 ,将其写成分块矩阵 的形式】,然后与向量l 匕l 相成: h 眺聃膀卜 ( 2 1 4 ) 考虑到任何3 3 的线性变换矩阵肛都可以用一个4 4 的齐次矩阵来 表达。由于平移一个向量丁时也可以由一个齐次平移矩阵来表达,如下: 旧 由以上两个变换矩阵组成的线性变换式y = m z + r ,写成分块矩阵的形 式即是: 刚矧爿 1 5 假定可逆,则上式可以写成:i 。吖一,孑一手) 。并且我们可以得到齐 次矩阵的逆矩阵的表达式: 旧- 卜州 q 1 6 在这里,我们讨论齐次矩阵的逆矩阵主要是因为在后续的章节中计算投影矩 釜。 武汉理工大学硕士学位论文 阵时,需要用到以上的矩阵交换式。 坐标系,在3 d 图形世界中坐标系的选择有一定的次序,其中主要有三 个坐标系统,分别是模型坐标系,世界坐标系,窗口坐标系。在计算机进行 图形的漓染时,其过程是将物体坐标经过系剐的变换,最后投影到屏幕上, 形成真实感酌图像,其道程如图2 2 所示: 物体座标模型视图矩阵投影矩骅透视除法窗口坐标 阁2 2 坐标变换 视图变换类似于将观察物体的相机对准物体的过程,模型变换是为了确 定模型的位瑷和方向,在这一阶段中,可以对模型进行旋转,平移,和缩放 的组合操作。投影交换掰来确定褫野的大,j 、或者视胬体的大小,邵确定旆墅 物体在视野之肉黻及它钓静形状帮大小。除了确定视野豹大枣,圈潜还将决 定物体在诗簿掇羼慕上静投影方式。一般毒疆辨投影方式,分别是遴褪投影, 效果是类似我们双察物体,遮处的物体变小,近处的物体大些,另一墨申投 影便是正交投影变换,这种方式将物体直接映射到屏幕上,而不是改变它们 的棚对尺寸。i :e 交投影常用在建筑学或者计算机辅助设计中。视区变换则需 要在投影变换之后进行,投影变换给定映射的机制,而视醒变换则给出映射 后豳像在屏幕中最终显示的形状。视透变换指定了图像在计算机屏幕中所占 的嚣域,迸蔼决定了图像是否是敬大还是缩小,最终将图像浃瓣刭窗西牵。 2 2 3 光照和材成 当鼹察卷鼹溪三维戆体时,饿明不仅仅萎到驰是物体垂确的足挺疆性, 还皮该麓到真实感的物体表蕊属性。人们能够焉到物钵,是因为人的视觉系 统接受到了光源通过物体表面反射过来的光子,在三维计算图形中,光源一 般可以分为三种类型:方向光、点光、和聚光,方向光可以理解为一盏放在 武汉理工大学硕士学位论文 离物体无穷远处的点光源,所有由此光源出发抵达物体处的光线都是平行的, 太阳光即是较典型的方向光。点光和聚光都属于位置光源,因为它们除了具 有方向信息以外,还具有位置信息。点光可以理解为一个往四周发射光子的 无穷小点。实际上,真实的光源是不可能归于点光或聚光的,因为真实的光 源都具有一定的面积或体积,所以真实光源下的影子都是软边界的。 材质是描述入射光线如何在物体表面作用的数学方法,目前发展比较成 熟的是b r d f ( b i d i r e c t i o n a lr e n e c t i o nd i s t r i b u t i o nf u n c t i o n l 模型1 1 6 j ,b r d f 模型通过积分的形式来描述物体上一无穷小点对入射光线的吸收和反射情 况,在理论上可以描述现实中绝大多数的光学现象。在实时三维计算机图形 中,通常采用简化的光照模型,如著名的p h o n g 模型和早期的三维图形加速 卡支持的g o u r a u d 模型,虽然它们提出要比b r d f 模型早,但都可以由b r d f 模型简化得到。 以上简要地介绍了光源和材质,实际上光源和材质均属光照模型的范畴, 某种材质模型和与之匹配的某种光源模型相统一即是光照模型。在实时计算 机三维图形中,光照通常被分为环境光、漫射光、反射光和自发光,g o u r a u d 光照模型是早期硬件所支持的唯一光照模型,当前随着图形硬件技术的飞速 发展,p h o n g 光照模型,或更复杂的光照模型都可在可编程图形硬件上实现。 g o u r a u d 和p h o n g 模型都是局部光照模型( l d c a li l l u m i n a t i o nm o d e l ) , 而不是全局光照模型( g l o b ei l l u m i n a t i o nm o d e l ) ,全局光照模型和局部光照模 型的主要区别是前者在光照计算中考虑了光线在物体表面上的散射,以及光 线的多次折射和反射,在目前的图形硬件上能够实现的只是局部光照模型, 虽然目前有不少用图形硬件实现了全局光照模型的方法,但这些方法都需要 通过预计算才能达到实时性,也存在着很多限制,如p r t ( p r e c o m p u t e d r a d i a n c et r a n s f e r l 方法要求三维场景中除了光源以外,其它所有物体必须是 静态的。 2 3 可编程图形硬件 2 3 1 图形硬件的发展过程 图形硬件是最近几年才发展起来的一个热门领域,目前仍在不断发展中。 1 4 武汉理工火学硕士学僚论文 消费级别图形硬件的爨祖是3 d f x 公司在1 9 9 6 年推出的、b o d o o 显卡,最早的 。d 驹显卡获支持光瓣铯,并不支掩巍爨露冗侮交换,爨蠢魏蔻薅露光照计 算都是放在c p u ( 中兔她理器) 上完成的,由圈澎硬件去完成光栅亿过程中的 计算,如像素插值,透视校正等,包括最后阶段的填充和绘制均是由图形硬 件来完成。扶1 9 9 6 年颦1 9 9 9 年,圈鼯硬件搓架梅上并未发生攫大变化,其 满畜豫聪x 辨蘸冀它公司连接爨了囊己懿蚕影凝磐产箍,王僚器理窝蘑麓类 似于、b o d o o 系列,如n v i d i a 的r i v a1 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 r 系舞,默程装戮支持3 2 b 魏颜爸输出,嚣藏露磷3 爱支持i 国娃 颜色输出,3 2 b i t 颜色输出在那时照燕有革命德的,奠定了图搿硬件发展标准 的基础。 1 9 9 9 攀年底嚣,凝察的鹜形磷传垮不支持尼俺交换藏光照靛功能,r i d 疆 公霉接爨鹃g e c e2 筠改交这耱鼹瑟,蕊f o 勰2 5 6 将凡帮交换帮巍照 ( ,r f a n s f 0 煳a n dl i 曲t i n g ,简称t n l ) 引入至图形硬件,从而使c p u 从繁熬韵 计算中群脱出来。由于图形硬件在设计时完全基予s i m d ( 单指令流多数搬流l 煞楚理器搂墅,赁淡辫缮硬件在避行豆德变捩藕嵬爨对枣通鼷功链憝理黎露 法比投时优势,萁矩璐潺算韵能力明摄高于同期c p u 。除瓢l 外,g e f o r c e2 5 6 还引入了点乘纹理操作方式,具体作法是将两个纹理取样的缩果进行点浆, 这耱功怒涛透像素光照诗算提供了、澄娆,后来粒一段时甥蠹,蔷厂商麓续捺 凄了其番类叛囊畿豹产品,蠡艄浆襄醚e o 魏彳5 0 0 ,嚣v i d 妇公司氇箍漆了 g e f o f c e2 系列,g e f o r c e2 系列只是在g e f o r c o2 5 6 的基础上提高了绘图效 率,功能上并没有改进。 g e f o 辫2 疆嚣翁阕形硬薛蒸蹙不霉壤程鹣,其工终熏理就是:建筑程滓 通过应硝编程接口( a p 蚺指定硬伴的工作方式,蠹日:是否启稍嚣,是否扁髑纹 理贴图等,然后硬件按照事先设计好的工作流橼依次进行几何变换、光照计 算、光橼纯等步骤,奁掰最后显零,矮户只能据定显辩有限工佟状态,矮锌 不支转懿王接凌态廷蒋暹过e u 来完残,这样靛互俸方式鼹稍了嚣形硬博功 能的扩充,因为相对予各种各样的算法,图形襁件提供几种销限的功能烧远 远不够的。 最罩瓣渣费缀哥绩程莲影鹱静是k v 蟊逸公霹予簿霉雪嚣捺撼麓 g e f o r c e3 ,g e f o r c e3 引入可编稷顿点流水线的概念,顶点的几何变换嗣光 武汉理t 大学硕士学位论文 照都可以根据用户指定的方式进行。与不可编程硬件本质区别是:用户指定 硬件工作状态时勿须使用预先规定的状念,而是编写硬件可执行指令,与 c p u 非常相似,所以后来可编程图形硬件也被称为g p u ( g r a p h i cp r o c e s s u n i n ,这样图形硬件就可以完成用户自己设计的各种各样的算法。当今,即 使是普通的图形加速卡,其中的图形处理器都已经发展成为具备强劲性能并 且灵活易用的处理器。这些图形处理器不仅储存带宽大、计算能力优异,而 且其所具有的可编程顶点及像素处理单元支持浮点运算精度的向量运算。 h i 曲k v e ls h a d i n gl a n g u a g e ( 高级着色语言) 更是对顶点及像素处理流水线 提供了良好的可编程性支持i l ”。 2 3 2 着色器模型( s h a d e rm o d ej ) 着色器模型的概念是随着微软公司推出的d i r e c t 3 d8 o 而引入的,它是 可编程图形硬件的软件接口,同时也规定了图形硬件必须具备何种能力。 d i r e c t 3 d8 o 中引入的s h a d e rm o d e l 的版本是1 o ( 以下简称s m l 0 ) 其在顶 点处理和像素处理上规定了硬件的功能。由于早期硬件的处理能力有限,所 以在s m l o 中,像素处理的可编程能力较弱,只允许使用最多4 条纹理指令 和8 条数学运算指令,而且对不同硬件寄存器的读写都有限制。需要指出的 是,s m 是软件接口,底层硬件实现上,一条点处理或像素处理指令并非对 应一条硬件指令,最早的s m l o 硬件n v i d i ag e f o r c e3 上,像素处理是通过 寄存器组合器来实现。但从工作原理上看,寄存器组合器并不属于可编程范 畴。继s m l 0 后,硬件厂商陆续推出了新产品,微软也扩展了s m l 0 ,也就 诞生了s m l 1 到s m l 4 ,这些s m 不同版本的主要区别就是在像素处理上。 由于s m 的实现是硬件相关的,每个不同s m 版本其实就属于不同的硬件厂 商,比如s m l 1 和s m l 3 是n v i d i a 公司的g e f o r c e3 和g e f o r c e4 系列所支 持的,而s m l 4 是a t i 公司的r a d e o n8 5 0 0 系列支持的。不同的硬件厂商支 持不同版本的s h a d e rm o d e l ,这种情况直到现在仍然存在川。 2 4 图形编程接口 2 4 1o o e n g l 1 6 武汉理工人学硕士学位论文 计算机图形学的发展极大地促进了计算机剞视化技术、虚拟现实技术的 发震。入钠对诗算辊胃视毯接零的研究已经经历了一令簌长驹历程,蘑疑澎 成了许多埘裙纯工其,蒸中s g l 公司推出匏g l 三维蘑形瘁澈现突舀,翳于 使用而且功能强大,利用g l 开发出来的三维威用软件颇受许多专业技术人 员螅喜爱,这些三维应惩软传已涉及建笺、产熬竣诗、医学、堍球科学、瀛 落力学等领域。蘧着计算辊按拳酌继续菱震,g l 已经瀵一多爱震裁为 o p e n g l ,o p e n g l 在早期被认为是商性能图形和交互式视景处理的标准,融 括l b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机局域网毕业论文
- 2024年医疗废物管理考试试题及答案
- 金融系毕业论文查重软件
- 毕业论文专业性质划分
- 英语毕业论文答辩自述
- 幼儿数字早教数一数练习题(附答案)
- 服务设计专业毕业论文
- 2025年智能电网建设聘用技术专家合同
- 毕业论文参考文献顺序
- 2025年制冷与空调设备运行操作证考试题库及答案
- 无纺布行业知识培训总结
- 2025年秋季教导处工作计划-深耕细作教研路笃行不怠启新程
- 党建品牌创新活动创新路径与实践探索
- 2025年保山辅警考试题库(附答案)
- 合同基础知识培训课件教学
- 2025-2030中国家政服务从业人员培训体系与职业发展白皮书
- 安全生产事故分级标准
- 营养指导员试题附答案
- 初中英语新人教版八年级上册全册单词(2025秋)
- 2025年广西中考道德与法治试题答案详解讲评课件
- 计算机硬件系统的组成ppt课件
评论
0/150
提交评论