(计算机应用技术专业论文)三维建模与渲染相关技术研究.pdf_第1页
(计算机应用技术专业论文)三维建模与渲染相关技术研究.pdf_第2页
(计算机应用技术专业论文)三维建模与渲染相关技术研究.pdf_第3页
(计算机应用技术专业论文)三维建模与渲染相关技术研究.pdf_第4页
(计算机应用技术专业论文)三维建模与渲染相关技术研究.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

(计算机应用技术专业论文)三维建模与渲染相关技术研究.pdf.pdf 免费下载

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

文档简介

中同科学挫术人学顺 学位论文_ 二推矬摸与渲染相关技术研究 摘要 三维建模与演染及相关技术有着广泛的应j | 【1 i 景,如建筑展示,工业造型和 仿真,电影和动画,高危环境模拟,飞行员训练等。然而,在现阶段这些技术被 用于三维程序丌发时,要求丌发人员搠有许多相关的算法知识和专业知识,给快 速的,r 发过程带柬一定的困难。目自f 对于这一问题的解决方案是:提供一个封装 了硬件操作和图形算法、简* 易用、功能丰富的包括从建模到渲染的三维图形开 发耶境。这个环境可以称为三维图形引挈。 三维图形引擎的研究主要集中在:如何在计算机中表示二维世界以及三维世 界内的物体建模;如何显示己准备好的表示三维世界及物体的数据渲 染。本文围绕建模和渲染在如下几个方面做了一定的研究: 1 、分析研究了现代图形硬件所具务的渲染管线的各部分工作过程、讲述了 各种变换等预备知泌以及给出了一些辅助库的设讣; 2 、介绍分析了一些主流的三维建模和渲染算法,设计实现了基于均匀空间 剖分的从的树结构,同时给出了均匀空问剖分时大规模数据处理的策略和相关算 法: 3 、分析了三维渲染时c p u 与g p u 的负载平衡问题,同时给出基于负载平 衡思想的优化渲染的一种方式; 4 、研究实现了虚拟三维环境下的人机交互的关键技术三维漫游和三维 空间拾取。 通过对算法的分析和理论研究,本文基本能够文现在微机中构造一个虚拟世 界,这个虚拟世界可以是任意大小,可以被微机实时的渲染,还可以和微机前的 人进行交互。同时,本文研究的成果只需稍加更改就可以应用于建筑展示,工业 造型和仿真等场合。总的来说,研究工作达到了预期的目的,取得了不错的收益。 关键词:三维建模,三维渲染,b s p 树八叉树,p o r t a l ,从,均匀空问剖分 人规模数据处理,负载平衡,人机交互 中困科学技术人学硕i j 学位论文三维建模与渲染相关技术研究 a b s t r a c t t h r e ed i m e n s i o nm o d e l i n g r e n d e r i n ga r eb e i n gw e l lu t i l i z e di nm a n yf i e l d s s u c ha sa r c h i t e c t u r e ,i n d u s t r ym o d e l i n g & s i m u l a t i o n ,m o v i e c a r t o o n ,h i g hr i s k e n v i r o n m e n ts i m u l a t i o n p i l o tt r a i n i n ga n ds oo n h o w e v e r , t ou n d e r s t a n d & u t i l i z e s u c hat e c h n i q u e ,m a n yb a c k g r o u n dk n o w l e d g e sa r cn e e d e d s o ,i ti sp r e t t yh a r dt o d e v e l o pa3 da p p l i c a t i o ni nas h o r tt i m e f o rt h i sr e a s o n ,ad e v e l o p i n ge n v i r o n m e n t w h i c he n c a p s u l a t e sm a n yh a r d w a r eo p e r a t i o n sa n dm a n yg r a p h i c sa l g o r i t h m si sv e r y n e c e s s a r yf o rp r o g r a m m e r sa n de n g i n e e r s t h i se n v i r o n m e n ts h o u l di n c l u d ea l m o s ta l l t h ef u n c t i o n sw h i c ha r en e e d e db ym o d e l i n ga n dr e n d e r i n g ,a n ds h o u l d b ee a s yt ou s e w ec a l ls u c ha ne n v i r o n m e n tt h r e ed i m e n s i o n a le n g i n e t h er e s e a r c h i n go f3 de n g i n ef o c u s e do nt w ot o p i c s :h o wt os t o r e & m a n a g e3 d w o r l da n d3 do b j e c t s l o d e l i n g ,a n dh o wt or e c o v e r3 dw o r l da n d3 do b j e c tt oo u r s c r e e n r e n d e r i n 吕i nt h i sa r t i c l e ,a r o u n dt h e s et w ot o p i c s ,w eh a v ed o n es o m e r e s e a r c hw o r ki nf o l l o w i n gf i e l d s : 1 d i s c u s s e ds o m eb a c k g r o u n dk n o w l e d g e ,s u c ha sf u n c t i o n a l i t yo fe a c hp a r to f t h ep i p e l i n eo f m o d e mg r a p h i c sc a r d ,t r a n s f o r m a t i o nt h e o r i e sa n ds oo n i m p l e m e n t e d s o m ea u x i l i a r yl i b r a r y ; 2 i n t r o d u c e da n da n a l y z e ds o m em a i n s t r e a m3 dm o d e l i n g & r e n d e r i n ga l g o r i t h m d e s i g n e da n di m p l e m e n t e dc l u s t e rt r e es t r u c t u r eb a s eo nu n i f o r ms p a c i a ld i v i s i o n , m e a n w h i l ew ei n t r o d u c e dah u g ed a t am a n a g es t r a t e g yb a s eo nu n i f o r ms p a e i a l d i v i s i o na n dd e s i g n e ds o m er e l a t e da l g o r i t h m 3 a n a l y z e dt h ep r o b l e mo fw o r k l o a d sb a l a n c i n gi n3 dr e n d e r i n ga n dd e v e l o p e da n e ww a yo f o p t i m i z e3 dr e n d e r i n gb a s e do nt h ei d e ao f w o r k l o a d sb a l a n c i n g 4 r e s e a r c h e da n di m p l e m e n t e dt h ek e yt e c h n i q u e so fi n t e r a c t i n gb e t w e e nh u m a n a n dc o m p u t e ri nv i r t u a l3 de n v i r o n m e n t ,s u c ha s3 dw a l k i n ga n d3 dp i c k i n gu p b a s e do nr e s e a r c hw o r kd o n ei nt h i sa r t i c l e ,w cc a nb u i l dav i r t u a lw o r l di n c o m p u t e r t h es i z eo ft h ev i r t u a lw o r l dc a l lb ea n ys c a l em e a n w h i l et h ev i r t u a lw o r l d c a nb er e n d e r e di nr e a lt i m e a n dw h a t sm o r e t h ev i r t u a lw o r l dc a ni n t e r a c tw i t h l i 中困科学技术人学硕i 学位论文 三维建模与渲染相关技术研究 h u m a n t h eb e n e f i t so ft h i sa r t i c l e sr e s e a r c hw o r ka r en o tl i m i t e dt ot h e s e w es u r e t h a ta f t e ral i t t l ec h a n g e ,o u ra l g o r i t h m ,t h e o r ya n do t h e rr e s u l t sc a nb eu t i l i z e di n m a n yo t h e rf i e l d s ,s u c ha r c h i t e c t u r e ,i n d u s t r ym o d e l i n g & s i m u l a t i o n ,h i i 曲r i s k e n v i r o n m e n ts i m u l a t i o n ,a n ds oo n k e y w o r d s :t h r e ed i m e n s i o n a lm o d e l i n g ,t h r e ed i m e n s i o n a lr e n d e r i n g ,b s pt r e e , o c t r e e ,p o r t a l ,c l u s t e r , u n i f o r ms p a c i a ld i v i s i o n ,h u g ed a t am a n a g e ,w o r k l o a d s b a l a n c i n g ,h u m a n - c o m p u t e r i n t e r a c t 1 1 1 中田科学技术人学碳i :学位论史第一章绪论 1 1引言 第一章绪论 今天,对许多人而言,计算机和计算机图形学已经成为同常生活不可分割的 一部分。随着计算机软、硬件突飞猛进的发展,计算机图形学在科学、工程、医 学、娱乐、广告、图形艺术、精细艺术、商业、教育和培训等众多的领域得到了 普遍的应用。 目阿,计算机图形学已进入三维时代,三维图形在人们周围无所不在。科学 计算可视化、计算机动画和虚拟现实已经成为近年来计算机图形学的三大热门话 题,而这三大热门话题的核心技术均为三维图形。 概括的说,计算机三维图形学研究的问题集中在下面四个方面: 如何表示三维世界及三维世界内的物体, 如何准备这些三维世界及物体的数据, 如何显示已准备好的表示三维世界及物体的数据, 如何实现人与虚拟的三维世界的交互 t 0 1 其中,如何表示三维世界及三维世界内的物体即为对建模的研究,而如何显 示已准备好的表示三维世界及物体的数据即为对渲染的研究。 1 2 课题研究意义 三维图形技术在众多领域有着广泛应用,如建筑展示,工业造型和仿真,电 影和动画,高危环境模拟,飞行员训练等。 然而,出于三维图形涉及到许多算法和专业知识,要快速的开发三维应用程 序是有一定困难的,因此一个封装了硬作操作和图形算法、简单易用、功能丰富 的包括从建模到渲染的三维图形开发环境,刘+ 于应用程序开发人员就是非常必需 的。这个环境可以称为三维图形引擎。 引擎,是借助机器工业的同名术语,表明在整个系统中的核心地位,也可以 称之为“支持应用的底层函数库”或者说是对特定应用的一种抽象。总的说引擎 共有如下几个特点 7 : 中心科学技术人学坝i ? 学位论义第一章绪论 驱动性:引擎的最人特点是具有“驱动性”,即引擎在功能上支持某个方面 的应用,但具体的实现细节则依赖于应用本身。 完整性:即引擎是能够完整实现某个方面功能的函数集。 独立性:即引擎可以不依赖于具体的应用而独立存在。 相对韩国、日本、美国等国家来说,我们在这方面的研究比较滞后。国内的 一些三维的应用大多是引进的韩国、同本、美国的三维引擎,而这些引擎的核心 代码是不公开的,因此研究和设计一个三维引擎将会是一次有意义的尝试。现在 一些高校和研究所已经加入了研究三维引擎的行列,同时,在2 0 0 3 年,三维引 擎系统的核心研究被列入国家8 6 3 高技术发展计划。 1 3 国内外相关研究现状 在国外,三维建模与渲染的相关技术发展非常迅速。硬件方面,新的高性能 的显卡不断的被设计和生产出来,如n v i d i a 和a t i 两家显示芯片生产商几乎每 半年就更新一次他们的产品,而每次更新后的性能均有2 0 5 0 的提升,功能 也大大的增强,同时还有很多规模稍小的公司也在不断的研究新的硬件,如3 d l a b ,s 3 等。软件方面,各种新的、集合众多先进技术的三维引擎不断被开发出 来,如u n r e a l 4 3 系列引擎,被广泛的应用在众多的软件中,i d s o f t w a r e 公司的 q u a k e 系列引擎也拥有众多的用户,而其最近丌发的d o o m l l l 引擎,其渲染效果 可以在微机上达到电影的级别;同时各种围绕着三维图形技术所开发的软件也非 常广泛,如3 d sm a x ,m a y a ,l i g h t f r a m e 等。 在我国,三维建模与渲染及相关技术的研究相对比较晚。在硬件方面的研发 几乎是空白。软件应用,理论研究方面也还比较少,自主研发的商业产品不多。 如,浙江大学c a d & c g 国家重点实验室主要开展计算机动画、真实感图形生成、 虚拟环境建模技术等方面的研究。另外北京航空航天大学、北京理工大学、清华 大学、上海交通大学等也在开展虚拟现实技术的研究工作。例如由北京航空航天 大学牵头开展的“分布式虚拟环境”项目,建立了我国第一个基于计算机广域网 的分靠式虚拟现实应用支持环境d v e n e t ,在d v e n e 上实现了一个具有较大 规模的多兵种异地军事仿真演练的高级概念演示系统“咫风2 0 0 0 ”,研制出一套 具有我国自主版权的分布交互仿真和虚拟环境开发工具。在产品方面,国内出现 中固科学技术人学硼l 学位论立 第一章绪论 了一些商业软件。例如武汉三屹高新技术有限公司开发的“三维城市建设仿真系 统”,该系统可用作三维地理信息系统的城市规划和建设管理。2 0 0 3 年8 月,美 国s g i 公司在北京设立首座虚拟现实中心,该中心出8 个s g o n y x3 0 0 系列系 统构成,并采用c h r i s t i e 投影技术,能够对高度复杂的数据进行可视化处理,通 过三维数字景象及模型实现对现实的模拟。在我国汽车制造领域,s g i 的三维虚 拟现实技术也为长春一汽公司所青睐,该公司利用虚拟现实技术束设计出更加符 合中国国情的车型。总的来说,国内在这个方面虽然处于落后的地位,但是发展 的势头确是可人的。 1 4 本文主要研究内容 目前主流的图形硬件已经能够以令人满意的速度显示由上万个三角形组成 的逼真的三维场景。但是,在许多实际应用中,几何模型的规模和复杂度仍旧远 远超过了现今图形硬件的处理能力。因此寻找更好的处理大规模三维数据的方法 一直是近年来图形学研究的热点 8 。对这个问题的研究集中在寻找优秀的三维 建模方法,以及设计和其对应的渲染方法。基于这样的考虑,本文主要的工作和 研究集中在: 1 、研究目前典型的三维建模的算法,分析他们的优缺点 2 、设计并实现我们的面向埘缘的层次式建模方法 3 、设计大规模数据处理的策略和算法 4 、对三维渲染中的负载平衡问题进行一定的分析和实验 5 、研究分析虚拟三维环境下的人机交互技术 1 5 开发平台简介 o p e n g l ( o p e ng r a p h i c sl i b r a r y ) 是图形硬件的软件接口。它包括大约几百 个不同的函数,程序员可以使用这些命令设定所需的三维物体和操作,来制作交 互式的三维应用程序 9 。o p e n g l 是作为一种新型的接口来设计的,它与硬件无 关的特性,使其可以在不同的硬件平台上实现。 o p e n g l 早期主要应用在专业的图形工作站上。随着微机硬件性能的显著提 高和3 2 位操作系统的出现,微机整体性能已经接近或超过了早期的工作站水平, 中旧科学技术人学硕i 。学位论文第一章绪论 因此,在微机上也可方便的实现。由于其丌放性和高度可重用性,o p e n g l 己成 为高性能图形和交互式视景处理的工业标准,可在w i n d o w s9 5 9 8 n t x p 2 0 0 3 m a c ,o s 2 及u n i x l i n u x 上应用。比较著名的产品如动画制作软件3 d m a x ,m a y a s o f l l m a g e ,v r 软件,c a m 软件等都是以o p e n g l 为基础 7 】。 一个典型的使用o p e n g l 的程序都需要建立一个用来作图的窗口,之后建立 一个g lc o n t e x t ,一旦g lc o n t e x 被成功建立,程序员就能调用各种o p e n g l 命 令,或者进行作图操作、或者改变作图的状态。 因为o p e n g l 要保持平台无关性,所以它不包括任何的窗口操作,输入输出 操作。在本文的研究中,借助w x w i d g e t s 6 1 库来实现相关的窗i s l 操作。 w x w i d g e t s 是一个基于c + + 的、开源的、完全免费的、跨平台的g u i 库,在 w x w i d g e t s 的帮助下,可以实现多线程、多种图像格式的读取显示和存储、网络 处理、流处理等众多应用,对于本文而言最重要的是w x w i d g e t s 可以提供一个窗 口程序的框架,而在这个框架上制作出来的图形界面的程序能够轻松的运行在 w i n d o w s 、m a c 、u n i x 等。 1 6 本文的内容安排 本文第二章分析研究了现代图形硬件具备的渲染管线的各部分工作过程、讲 述各种变换等预备知识以及给出了一些辅助库的设计;第三章是本文的重点,介 绍分析了一些主流的三维建模和渲染算法,以及设计实现了基于均匀空问剖分的 从的树结构,同时给出了均匀空间剖分时大舰模数据处理的策略和相关算法;第 四章分析了三维渲染时c p u 与g p u 的负载平衡问题,同时给出基于负载平衡思 想的优化渲染的一种方式;第五章是关于虚拟三维环境下的人机交互;最后一章 是本文的总结以及展望。 4 中用科学拈术人学坝l 学似论文 第一。蒂 颅符缸i 识世辅助库设计 第二章预备知识及辅助库设计 渲染管线 恼t i b xc o n n e c t i v i t y i ;x e l p d a t 图2 1 渲染管线 现代的g p u 是通过渲染管线将一个三维的图形一步步的转换成二维的图形 并显示在屏幕上的。如图2 1 ,渲染管线是一系列固定顺序排列的操作阶段,每 个阶段从前一个阶段接收输入,经过处理后输出到下一个阶段【3 。应用程序向 渲染管线发送按照几何元素分类的顶点数据( 几何元素指的是点、线、三角形、 多边形等,如图2 2 ) 。经过渲染管线的处理后,输出到屏幕的即为一个个的象素 点。 首先会进入顶点变换( v e r t e xt r a n s f o r m a t i o n ) 这一步,每个顶点都会被执行 一系列的操作,这些操作包括:将顶点坐标经过视图模型( m o d e l v i e w ) 变换生 成相机( 视图) 坐标;然后根据用户定义的额外剪裁面进行剪裁;通过剪裁的顶 点进行投影变换,生成剪裁( 投影) 坐标;剪裁坐标是齐次坐标,将其变换生成 非齐次坐标 1 】;非齐次坐标再经过视口变换即生成窗口坐标 2 ;变换结束后还 会进行一些操作,如生成顶点的纹理坐标,根据光照柬决定顶点的颜色等。 接下来会进入顶点组装和光栅化( p r i m i t i v ea s s e m e l ya n dr a s t e r i z a t i o n ) ,在 这罩顶点会被组装成几何元素;然后根据卒见景体( v i e wf r u s t u m ) 4 】进行翦裁; 再根据用户定义的额外剪裁面进行剪裁:通过剪裁的几何元素还要根据其正反面 和视点的关系来进行挑选( c u l l i n g ) ,通常只留下正面朝向视点的;通过挑选的 几何元素就会进入光栅化操作,将几何元素表示成一个个的“片断”( f r a g m e n t ) , 这是一个离散化的过程,即将一个连续的儿何元素离敞化成由若干片断组成,片 断的含义类似_ 丁象素,但不完全一样片断还包括深度,位置,纹理坐标( 多个) , 巾旧 : 学技术人学坝i 学位论上媳章颅蒜知讽肢辅助库址计 颜色( 多个) 等信息。 、- 1 ,- , v p o i n t 弩_ 移u l l * l i h l l i n _ 一q ;t r l p 渤。移 m - d e t 嵋t “tu u c 倍叫l ds t r q , p o i v 口o n 幽2 2 儿何元素 在贴图和着色( f r a g m e n tt e x t u r i n ga n dc o l o r i n g ) 中,处理前一步得到的片 断,根据片断中的纹理坐标来查询出纹理颜色,然后再和本身的颜色融合,生成 新的上过色的片断。 一 最后一步是光栅操作( r a s t e ro p e r a t i o n s ) ,这是图形显示出来前的最后一步, 包括视口剪裁。a l p h a 操作( 透明混合) ,s t e n c i l 操作( 掩码操作) ,深度操作( 丢 弃被遮挡住的象素) ,b l e n d i n g ,d i t h e r i n g ,逻辑操作等。 图2 3 形象的说明了顶点变换后渲染管线的各种操作。 v c o ,l t a “r “t r lv m l r 。t f o | l c e m s :怒 p r h ;日 v qa , s e m b i y r | 5 洒n h ”7 艺等i c o o n l o t , t e l n x 口t “轴“ 圈2 3 渲染管线示例 上面介绍的渲染管线又叫做固定渲染管线,另一种叫做可编程渲染管线,如 图2 4 。可编程渲染管线是现代g p u 发展的趋势,相比固定渲染管线,其最大的 优势在于灵活可变,通过对g p u 的编程,允许程序员对顶点和片断进行操作, 能实现很多在固定管线下难以实现或者实现代价过高的效果。笼统的来说,可编 中罔科学技术人学 i ! i fi 学位论史钯_ 二章预蔷知识发辅助库i 5 计 程的渲染管线用可编程顶点处理器代替了固定管线中顶点变换这一步,用可编程 片断处理器代替了固定管线中贴图和着色这一步。 2 2 三维齐次坐标 j j 掣m 铡卜嚣卢 p o c o “o r 蹦2 4 可编程渲染管线 计算机三维图形学的基础是向量代数,对某个目标物体的平移、旋转、缩放 等变换,以及生成最终图像所需的投影变换都要通过向量运算来完成。【1 为了方便进行矩阵运算,不论是o p e n g l 还是d i r e c t 3 d 都使用三维齐次坐标, 齐次坐标t t w = ( u x ,u y , u z ,w ) ,当w 不等于0 的时候对应的三维坐标为u = ( u x w , u y w , u z w ) ,当w 等于0 的时候常用来代表无穷远的点。对于三维坐标u = ( u x ,u y , u z ) ,对应的齐次坐标为u w u t x ,u y , u z ,1 ) 。 剖 胪嗍忡c 二*l 删 m,6惭 哦p 中困科学技术人学坝l 学位论义 笫一章 颅蔷知识驶辅助库设计 2 3 常用三维变换 2 3 1 平移变换 对于点v = 兰 进行平移变换,其中在x y z 轴分别平移的距离为x ,y ,z 那么实 施此变换的矩阵为t = 2 3 2 旋转变换 lo ol o o o o 0 工 0 j , 1z o1 则变换后的点“w = t + 1 啊 v y 惯 1 对于点。:f 兰 进行旋转变换,即将点,绕c 。,y ,刁轴旋转。弧度,则用如下 刊习 z 令s = i o 孽导l ,m = “r + c c 。s a ,c ,一“7 ,+ c s i n n ,s 3 m 为3 3 的矩阵,设m i j 为m 中第i 行第j 列的元素,则月 则v 经过旋转变换后的点为“w = 尺+ v r v y 坦 1 棚1 棚2 棚3o m 2 1m 2 2m 2 30 m 3 1t r t 3 2m 3 30 o001 町阻看出上面的旋转阵r 的计算颇为复杂,然而多数时候我们只是将目标对 于坐标轴旋转而不是对于任意的轴旋转,此时的旋转阵计算即可化简,分别对于 中田科学技术人学顿i 学位论义 第一葶顶需知识及辅助库设计 x 轴、y 轴、z 轴旋转的旋转变换阵为 r x = 1o 0c o s a 0s i n a 0o oo s i n a0 c o s a0 o 1 2 3 3 缩放变换 e = c o s a 0 - s 1 1 3 _ a o 0s i n a0 loo 0c o s a0 o01 足= c o s a s l n a o o s l r l a c o s t : o o 0 o 0 o lo 01 对向量v = 三 进行缩放变换,假设对此向量x y z 轴分别进行倍数为x 、y 和 z 的缩放,则实施此缩放的矩阵为s u w = s + 1 v y v z 1 2 3 4 投影变换 z0 0y 0 0 oo 0 0 0 0 z0 01 ,变换后的向量终点 由于目前显示设备的限制,三维物体显示必须以二维图形的方式显示出来, 把三维物体变换成二维图形的表示过程成为投影变换。如图2 5 : c e m e r o t r u d u m 刊 彤。扒斗 d o s l i o nj 7 吖彪 , 幽2 5 投影变换 经过投影变换后,所有位于视景体( 关下视景体请参2 5 节) 内的对象被变 换到左下角和右上角为( 一1 ,一l ,o ) ,( 1 ,l ,1 ) 的矩形区域中,其中,视景体的近平面变 中周科学技术人学硕i 。学位论文 第一章 顶符知识驶辅助库砹计 换后的z 坐标为0 ,远j 卜面变换后z 坐标为1 。经过投影变换后,只需阿经过非 齐次化硐i 视口变抉即可得到屏幕一l 最终的图像。 根掘不同的应用环境,所使用的投影变换方式也4 i 川。根据投影中心与投影 平面之j 日j 的距离不同,投影可分为平行投影和透视投影。平行投影的投影中心与 投影平面之间的距离为无穷大,而对透视投影,投影中心与投影平面之间的距离 失有限的。不同的投影方式又根据实际不同的需要和应用被分为不同的投影,其 分类可以表示如下: 投影p 鬻 l 透视投影 三差薹蒌 任何一束不平行于投影平面的平行线的透视投影将汇聚成一点,称之为灭 点,在坐标轴上的灭点成为主灭点。透视投影的视线( 投影线) 是从视点( 观察点) 出发,视线是不平行的。透视投影按照主灭点的个数分为一点透视、二点透视和 三点透视。主灭点个数是和投影平面切割左边州的数量相对应的。如投影平面仅 切割2 轴,则z 轴是投影平面的法线,因而只在z 轴上有一个主灭点,而平行 于x 轴或者y 轴的直线也平行于投影平面,因而没有灭点,此时就是称为一点 透视。 在一般的三维成像的显示当中,由于透视投影的一点透视方式和实际人眼视 场比较相像,在三维成像的显示中一般都采用一点透视,因此,透视投影在不特 别指明的情况下均认为是一点透视1 1 1 1 。 o p e n g l 中,透视投影和平行投影的变换阵分别为【1 】: r p = 旦。 型 o o 旦坐 o oo二竖塑2 兰鱼 f nf 一,2 001o r 。= 2 ,一, 0 0 o 0 2 f b o o 0 o ,一h o r + f ,一l t + b t b 厂+ 盯 厂一玎 1 这里只给出了几个很常用的变换的结论,具体的推导和其他一些相关的变换可以 参看 1 2 。 中田科学技术大学硕i :学位论文第二章预备知识驶辅助库驶计 2 3 5 视口变换 屏幕上窗口的原点是在左上角,同时,y 轴向下为f 方向,这不同于数学中 的三维坐标系。如图2 7 : 图2 7 视口变换 因此必须进行视口变换才能将图形难确的显示在窗口内,视口变换按照下面 的公式进行: x w = x + w i n d o w w i d t h 2 y w = w i n d o w h e i g h t 2 一y 2 3 6 变换的合成 拥有了这样几个简单的变换后,任意复杂的变换都可以通过这几个简单的变 换合成出。假设对p 点进行c 变换生成点q ,而对p 点先进行a 变换,后进行 b 变换亦生成q 点,则:q = c + p 且q = b ( a p ) ,因为矩阵乘法具有结合性,所 以q 文b a ) + p ,由此可见b + a 可以合成c 变换。 2 4 坐标空间 在o p e n g l 和d i r e c t 3 d 中都有坐标空间的概念,即根据场合的不同使用不同 的坐标系。如图2 8 ,三维的对象最终显示在二维的屏幕上必须经过若干次的变 换。 中困科学投术大学碳小学位论文第二章顶祷知识搜辅助库设计 翻 曰宁曰阐l 国i 【| i p州_pep cp n p w d 0 a 幛“由 图2 8 坐标空间 每个特定的对象,都有一个局部坐标系( o b j e c tc o o r d i n a t e s ) ,这个对象自身 的坐标信息都使用局部坐标系来描述。从局部坐标系可以变换到世界坐标系 ( w o r l dc o o r d i n a t e s ) 。世界坐标系是三维场景所使用的坐标系,通常对一个三维 对象位置的描述为用这个对象内部的某个点代表这个对象,记录这个点在世界坐 标中的位置,而对象内部其他的点的位置均用相对这个代表点的位置来描述,即 用局部坐标来描述。 从世界坐标系可以变换到视区坐标系( e y e v i e wc o o r d i n a t e s ) ,视区坐标系就 象在世界坐标系中摆放一台相机,视区坐标系原点的位置即为相机在世界坐标系 中位置,假如使用右手坐标系,那么视区坐标系的x y z 轴分别为右,上,拇指方 向。使用视区坐标系的原因是,在任意时刻,我们所能看到三维空间仅仅是相 机所能拍摄到的一块区域,将这块区域内对象坐标用相对相机位置的坐标描述显 然要合适的多。这个变换将坐标轴的原点移动到相机所在位置,设置新的y 轴与 相机的“上”方向向量同向,z 轴与相机的观察方向同向,x 轴同y z 轴构成右手 坐标轴,如图2 9 : 图2 9t i j :界坐标剑视幽坐标的变换 中田科学投术人学坝f 学位论史笫_ 二章预备知识及辅助库改计 在o p e n g l 中这个变换可以调用g l u l o o k a t ( ) 函数来完成,这个函数按照下面 的公式生成视图矩阵m a t v i e w , z a x i s = n o r m a l ( e y e a t ) x a x i s = n o r m a l ( c r o s s ( u p ,z a x i s ) ) y a x i s = e r o s s ( z a x i s ,x a x i s ) m a t v i e w x a x l s x f c l x z s x z c i s x 0 x a x l s y y a x t s y z a x l s v o x a x i s z d o t ( x a x i s ,e y e ) y t t r i s z d o t ( y a x i s ,e y e ) z a x i s z d o t ( z a x i s ,e y e ) o1 从视区坐标系通过投影变换到投影坐标系( p r o j e c t i o n c l i pc o o r d i n a t e s ) ,这样 的变换是为了产生透视投影或者平行投影的效果。 前面几步变换都使用齐次坐标,在结束投影变换后,要将齐次坐标转换为非 齐次坐标。 最后一步是视口变换,将非齐次坐标变换到窗口坐标系( w i n d o wc o o r d i n a t e s ) , 然后忽略z 轴坐标,即为在窗e l 内的坐标p w ( x w , y w ) 。 更加详细的关于坐标空间的讨论可以参看 1 3 】。 2 3 向量运算库的设计 向量运算是计算机三维技术的基础,现在已经有一些向量运算库可用,诸如 m a t l a b 5 】m t l 6 等,然而这些库或者是商用的,或者是过于庞大,或者购买 费用昂贵,又或者足不很适合我们的程序,使用时非常不便,所以我们设计了一 个新的向量运算库v e c t o r m a t h 。 2 3 1 矩阵类的设计 v e c t o r m a t h 完全基于c + + 模板,这样使得向量运算库可以处理多种数据类型, 并且可以处理任意大小的向量和矩阵。v e c t o r m a t h 的核心是矩阵类c m a t r i x ,其 定义如下 l e m p l a l e w x u i n t 3 2 一u i 3 2 r o w c o u n t ,w x u i n t 3 2 一u i 3 2 c o l u m n c o u n t ,c a s se l e m e n t t y p e = w x f i o a t 3 2 c l a s sc m a t r i x f 中田科学投术人学顺l 学位论史筘_ 二带预箝知议肢辅助库设计 p u b l i c : f r i e n dc l a s s c m a t r i x 一u i 3 2 c o l u m n c o u n t ,一u i 3 2 r o w c o u n t ,e l e r n e n f d y p e ; f r i e n dc l a s s c m a t r i x 一u i 3 2 r o w c o u n t ,一u i 3 2 r o w c o u n t ,e l c m e n t i 憎; f r i c n dc l a s s c m a t r i x 一u i 3 2 c o l u m n c o u n t ,一u i 3 2 c o l u m n c o u n t ,e l c m c n t t y p e ; f r i c n dc l a s s c m a l r i x 一u i 3 2 r o w c o u n t i ,e l e m e n t t y p c ; r i e n dc l a s s c m a t r i x 1 ,一u i 3 2 c o l u m n c o u n t ,e l e m e n t t y p e ; p r o t e c t e d : e l c m c n t t y p e m _ e l e m e n t s 【一u i 3 2 r o w c o u n t 】【一u i 3 2 c o l u m n c o u n t 】: e l e m e n t t y p e m _ e l e m e n t s c o l u m n m a j o r 【一u i 3 2 c o l u m n c o u n t 】【一u i 3 2 r o w c o u n t 】; p u b l i c : c o n s tw x u i n t 3 2m _ u i 3 2 r o w c o u n t m u i 3 2 c o l u m n c o u n t ; p u b l i c : c m a t r i x o ; v i r t u a i - c m a t r i x ( ) ; p u b l i c : e l e m e n t t y p e & o p e r a t o r ( ) ( w x u i n t 3 2u i 3 2 r o w l n d e x ,w x u i n t 3 2u i 3 2 c o l u m n l n d e x ) ; c o n s te l e m e n t t y p e & o p e r a t o r ( ) ( w x u i n t 3 2u i 3 2 r o w l n d e x ,w x u i n t 3 2u i 3 2 c o l u r n n l n d e x ) c o n s t ; c m a t r i x o p e r a t o r = ( c o n s tc m a t r i x m a t r i g h t ) ; c o n s tc m a t r i x _ u i 3 2 r o w c o u a t ,_ u i 3 2 c o l u t n n c o u r t t ,e e m e n t t y p e o p e r a t o r - 0c o n s t ; c o n s tc m a t r i x g e t t r a n s p o s e ( ) c o n s t ; w x i n t 3 2 g c t l n v e r s e ( c m a t r i x m a t l n v e r s e d ) c o a s t ; c o n 女c v e c t o r e x t r a c t c o l u m n ( w x u i n t 3 2u i 3 2 c o l u m n l n d e x ) c o n s t ; c o n nc v e c l o r e x t r a c t r o w ( w x u i n t 3 2u i 3 2 r o w l n d e x ) c o n s t ; v o i ds e t l d e n t i t y o ; c o n s | e l c m e n t t y p e + g e t b u f f e r ( b o o lb c o l u m n m a j o r = f a l s e ) : 其中u i 3 2 r o w c o u n t 和u i 3 2 c o l u m n c o u n t 分别是矩阵的行数和列数, e l e m e n t t y p e 是矩阵中元素的类型,可以是整形,浮点形等任何的数值类型。 在类的开始部分,定义了许多c m a t r i x 的友元,这是凶为在使用模板的时候, 模板参数不同的类会被认为是完全不相关的两个类,然而,显然一个矩阵和它的 转制矩阵或者和另外某个矩阵相乘后得出的新矩阵有着密切的关系,同时这个矩 阵和它的某一行或者某一列组成的向量( 向量的设计会在随后给出) 也有着密切 的关系,比如c m a t r i x 与c m a t r i x ,c m a t r i x 与c m a t r i x i n l i n e e l e r n e n t t y p e & c m a t r i x :o o c r n t o r o ( w x u i n t 3 2 u i 3 2 r o w l n d e x ,w x u i n t 3 2u i 3 2 c o l u m n l

温馨提示

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

评论

0/150

提交评论