已阅读5页,还剩73页未读, 继续免费阅读
(机械设计及理论专业论文)三维场景建模与虚拟漫游系统的研究和实践.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 a b s t r a c t i nt h i sp a p e r , t h er e s e a r c ha n di m p l e m e n t a t i o no ft h r e e - d i m e n s i o n a ls c e n em o d e l i n g a n dv i r t u a ln a v i g a t i n gs y s t e ma r ep r e s e n t e di nd e t a i l m o r e o v e r , t h ep i v o t a lp r o b l e m sa n d i n t e r r e l a t e dt e c h n o l o g i e se n c o u n t e r e di ns y s t e m si m p l e m e n t a t i o na r es t u d i e dd e e p l y t h e t h r e e d i m e n s i o n a ls c e n e m o d e l i n g a n dv i r t u a l n a v i g a t i n gs y s t e m i s c o m p o s e d o f e s t a b l i s h i n g a n di m p o r t i n gs c e n em o d e l s ,a d j u s t i n gm o d e l s c a l eo fg e o m e t r ym e a s u r e , s e t t i n g a n d m o d i f i c a t i n g m o d e l s p r o p e r t i e s s u c ha st e x t u r ea n dm a t e r i a l ,c o l l i s i o n d e t e c t i n g i ns c e n e ,s c e n el a y o u t i n g ,v i r t u a ln a y i g a t i n ge t c t h em a l nf r u i t sa r es h o w na sf o l l o w : t h em o d e l se x p r e s s i o nm e t h o d si nt h r e e - d i m e n s i o n a ls c e n ea r ei n v e s t i g a t e d i ti s p r o p o s e d t h a tm o d e ld a t aa r ed i v i d e di n t og e o m e t r yd a t aa n d m a n a g e m e n t d a t at od e a lw i t h m o d e l t h ed a t ao fm o d e l sp o i n t sa n df a c e si nt h r e e d i m e n s i o n a ls p a c ea r es t o r e di n t o g e o m e t r y d a t aa n dt h ed a t ao fs e t t i n gm o d e l s s c a l e ,c o l o r , t e x t u r ea n dm a t e r i a la r e s u p e r v i s e db ym a n a g e m e n t d a t a t h ec h a r a c t e r i s t i c sa n dm e t h o d s o f m o d e l i n g i nt h r e e d i m e n s i o n a ls c e n ea r ed i s c u s s e d t w om o d e l i n gm e t h o d sa r es t u d i e da n di m p l e m e n t e di nt h es y s t e m :t h ef i r s ti su s i n gt h e s a m p l em o d e l sp r o v i d e db ys y s t e ma n dt h es e c o n di si m p o r t i n gm o d e l sh a v i n gb e e n e s t a b l i s h e db yo t h e rm o d e l i n gs o f t w a r e s a f t e rm o d e l i n gt h em o d e li sp r e p r o c e s s e d c o l l i s i o nd e t e c t i o ni sa ni m p o r t a n tw a yt oa u g m e n tr e a l i s t i ci nv i m m l n a v i g a t i o n i n t h i sp a p e rc o l l i s i o nd e t e c t i o ni nv i r t u a ls c e n ei sd i s c u s s e di nd e t a i l ,t h ec o l l i s i o nd e t e c t i o n b e t w e e no b j e c t so rb e t w e e na v a t a ra n do 巧e c ti nt h r e e d i m e n s i o n a ls c e n ei sd e e p l ys t u d i e d a n d p r a c t i s e dw i 也p r o g r a m m i n g i m p l e m e n t i n gm e t h o d so fp i v o t a lp b r t s i n s y s t e ma r ed i s c u s s e di nd e t a i ls u c ha s m o d e l s p r o p e r t ys e t t i n g a n ds c e n e l a y o u t i n g e t c t h ev i r t u a l n a v i g a t i n gs y s t e m i s i m p l e m e n t e db yu t i l i z i n gt h ep o w e r f u la b i l i t i e so fw i n d o wi n t e r f a c ed e s i g n , m e s s a g e m a n a g e m e n t a n do s sl o w e r b a c k u pp r o v i d e db ym f c c l a s sl i b r a r ya n dcr u n - t i m el i b r a r y i nm a c r o s o f tv i s u e dc + + 6 o k e yw o r d :v i r t u a lr e a l i t ys c e n e m o d e l i n g c o l l i s i o nd e c t e c t i o n v i r t u a ln a v i g a t i o n i l 华中科技大学硕士学位论文 1 绪论 1 1 引言 虚拟现实( v i r t u a lr e a l i t y ,简称v r ) 一词是1 9 8 9 年美国v p ir e s e a r c h 公司的 创始人j a r o nl a n i e r 创造的,意思是:“计算机产生的三维交互环境,在使用中用户投 入到这个环境中去。”i l l 具体的讲,虚拟现实是由计算机及一些专用设备构成的环境, 用户在此环境中利用设备,以自然的方式与环境交互,从而产生亲临真实环境的感觉。 本文从构建一个三维场景建模与虚拟漫游系统的角度出发,对一个虚拟漫游系统的各 个关键部分作了细致的研究。 1 2 虚拟现实技术综述 下面将从虚拟现实技术的历史发展过程为出发点,结合本文课题讨论虚拟现实 的概念、应用、关键技术、开发平台等虚拟现实技术的各方面问题。 1 2 1 虚拟现实技术发展过程 一般认为,虚拟现实技术具有明确的研究目标是从6 0 年代开始形成的。6 0 年代 中,m o r t o nh e i l i n g 构造了第一个多感知仿真环境的原型s e n s o r 锄a 吼人坐于拱顶装 置下,手操纵摩托车把,仿佛穿行于纽约闹市,能看到立体、彩色、变化的街景画面, 听到立体声响,感到行车的颠簸、扑面的风,甚至能闻到相应的芳香。 1 9 6 8 年,有虚拟现实“先锋”之称的i v a ns u t h e r l a n d 研制了的一台头盔式显示 器h m d l 2 j 1 。用户双眼通过头盔上的一对c r t 显示屏观察图像,悬挂于天花板的机 械装置与头盔相连,用以测定用户头部的位置( 系统因此有“s w o r d o f d a m o c l e s ”之 名) 。这种h m d 具有“看穿”的能力,即计算机生成的立体图形与真实环境的视景 相叠于屏幕,用户可以通过转动头部观察计算机生成的图形物体的不同侧面,并可以 借助其他输入装置来操作这个物体。 1 9 7 1 年,f r e d e r i c kb r o o k s 研制了具有力反馈的原型系统g r o p e - - h i 【4 】,用户通 过操纵一个实际的机械手,来控制屏幕中的图形机械手去“抓取”一个立体图像表示 的物体,而且人手能感觉到它的重量。 华中科技大学硕士学位论文 工具( 三维鼠标、三维跟踪仪等) 准备的。高端软件包也支持数据手套。 目前已开发出的虚拟现实高级软件工具主要有:w t k w o r l d t o o l k i t , v c t - v c t o o l k i t ,虚拟现实t 3 v i r t u a l r e a l i t y t o o l k i t 等。 1 3 本文所做的主要工作 本文围绕虚拟漫游系统的建立这一目标,针对系统开发过程中所遇到的关键问 题和相关技术展开了深入地讨论和研究。该虚拟漫游系统由场景模型的建立和导入, 模型几何尺寸比例的调节,模型纹理光照等属性的设置修改,场景中的碰撞检测,场 景布局和虚拟漫游等一系列过程所构成。 本文所作的主要工作可描述为如下几部分: 1 ) 研究在三维场景中模型的表示方法,也就是关于模型的数据结构。讨论在系 统中如何表达模型,如何更好的将模型数据组织起来是这部分工作的主要内容。本文 提出将模型数据分为几何数据和管理数据两类来处理模型。模型在三维空间中的点、 面片的数据存放在几何数据中,设置模型大小比例、颜色、纹理和材质等数据则由管 理数据来控制。 2 ) 讨论三维景物的建模特点与方法,并研究在系统中进行景物建模的具体方法。 在本系统中实现两种建模方法:一是使用系统提供的简单模型,二是导入其他建模软 件建好的模型,并进行模型预处理。 + 3 ) 在虚拟漫游中碰撞检测是增强漫游过程真实感的重要手段。对虚拟场景中的 碰撞检测进行详细讨论,并对三维场景中物体之间、化身与物体之间的碰撞检测进行 深入的研究和编程实践。 4 ) 讨论模型属性设置、场景布局等系统各个关键部分的实现方法,并利用 m a c r o s o f tv i s u a lc + + 6 0 的m f c 类库和c 运行时库所提供的强大的窗口界面设计能 力、消息处理能力以及操作系统底层支持能力,来实现虚拟漫游系统。 1 4 小结 本章首先介绍了虚拟现实技术的发展过程、相关概念和应用前景,然后对虚拟 华中科技大学硕士学位论文 工具( 三维鼠标、三维跟踪仪等) 准备的。高端软件包也支持数据手套。 目前已开发出的虚拟现实高级软件工具主要有:w t k w o r l d t o o l k i t , v c t - v c t o o l k i t ,虚拟现实t 3 v i r t u a l r e a l i t y t o o l k i t 等。 1 3 本文所做的主要工作 本文围绕虚拟漫游系统的建立这一目标,针对系统开发过程中所遇到的关键问 题和相关技术展开了深入地讨论和研究。该虚拟漫游系统由场景模型的建立和导入, 模型几何尺寸比例的调节,模型纹理光照等属性的设置修改,场景中的碰撞检测,场 景布局和虚拟漫游等一系列过程所构成。 本文所作的主要工作可描述为如下几部分: 1 ) 研究在三维场景中模型的表示方法,也就是关于模型的数据结构。讨论在系 统中如何表达模型,如何更好的将模型数据组织起来是这部分工作的主要内容。本文 提出将模型数据分为几何数据和管理数据两类来处理模型。模型在三维空间中的点、 面片的数据存放在几何数据中,设置模型大小比例、颜色、纹理和材质等数据则由管 理数据来控制。 2 ) 讨论三维景物的建模特点与方法,并研究在系统中进行景物建模的具体方法。 在本系统中实现两种建模方法:一是使用系统提供的简单模型,二是导入其他建模软 件建好的模型,并进行模型预处理。 + 3 ) 在虚拟漫游中碰撞检测是增强漫游过程真实感的重要手段。对虚拟场景中的 碰撞检测进行详细讨论,并对三维场景中物体之间、化身与物体之间的碰撞检测进行 深入的研究和编程实践。 4 ) 讨论模型属性设置、场景布局等系统各个关键部分的实现方法,并利用 m a c r o s o f tv i s u a lc + + 6 0 的m f c 类库和c 运行时库所提供的强大的窗口界面设计能 力、消息处理能力以及操作系统底层支持能力,来实现虚拟漫游系统。 1 4 小结 本章首先介绍了虚拟现实技术的发展过程、相关概念和应用前景,然后对虚拟 华中科技大学硕士学位论文 现实技术中若干关键性技术和开发平台作了阐述,最后介绍了本文所做的主要工作。 华中科技大学硕士学位论文 2 系统的总体设计 2 1 引言 本章结合面向对象设计方法,提出了本系统的总体结构设计。本系统选择 m a c r o s o f tv i s u a lc + + 6 0 和o p e n g l 作为开发平台,采用面向对象设计技术来实现。 2 2 系统的功能需求分析 本系统的开发目标是建立一个建筑物室内漫游系统,该系统应能够实现以下功 能: 1 ) 提供建模工具。可以建立一些简单的模型如半球、茶壶、长方体、几何半球、 球、四棱锥、小半球、圆环、圆柱、圆锥等。 2 ) 模型导入。可以导入模型文件如3 d s 文件,并进行模型预处理。 3 ) 模型编辑。可以对模型进行编辑操作,改变模型各个方向的比例,改变模型 的颜色、材质和纹理,还可以对模型进行复制、删除等操作。 4 ) 场景布局、设计。改变模型的空间方位,将模型移动或旋转到希望的位置, 能进行模型的碰撞检测,并作出反应。 5 ) 可以操纵化身在场景中自主漫游,能进行碰撞检测,并作出反应。 6 ) 灯光效果。场景布局应当包括灯光控制,用户可以开关灯光。 7 ) 提供存储场景的文件格式,该文件格式为本系统所用。 8 ) 界面设计要易于理解、便于操作。图标菜单要形象、直观、易于记忆,菜单 层次分明。 2 3 系统开发平台简介 2 。3 1 系统开发平台的选择 系统开发平台的选择应考虑以下几个因素: 1 ) 开发平台应具有良好的图形处理能力; 2 ) 支持面向对象( o o p ) 的程序设计; 华中科技大学硕士学位论文 2 系统的总体设计 2 1 引言 本章结合面向对象设计方法,提出了本系统的总体结构设计。本系统选择 m a c r o s o f tv i s u a lc + + 6 0 和o p e n g l 作为开发平台,采用面向对象设计技术来实现。 2 2 系统的功能需求分析 本系统的开发目标是建立一个建筑物室内漫游系统,该系统应能够实现以下功 能: 1 ) 提供建模工具。可以建立一些简单的模型如半球、茶壶、长方体、几何半球、 球、四棱锥、小半球、圆环、圆柱、圆锥等。 2 ) 模型导入。可以导入模型文件如3 d s 文件,并进行模型预处理。 3 ) 模型编辑。可以对模型进行编辑操作,改变模型各个方向的比例,改变模型 的颜色、材质和纹理,还可以对模型进行复制、删除等操作。 4 ) 场景布局、设计。改变模型的空间方位,将模型移动或旋转到希望的位置, 能进行模型的碰撞检测,并作出反应。 5 ) 可以操纵化身在场景中自主漫游,能进行碰撞检测,并作出反应。 6 ) 灯光效果。场景布局应当包括灯光控制,用户可以开关灯光。 7 ) 提供存储场景的文件格式,该文件格式为本系统所用。 8 ) 界面设计要易于理解、便于操作。图标菜单要形象、直观、易于记忆,菜单 层次分明。 2 3 系统开发平台简介 2 。3 1 系统开发平台的选择 系统开发平台的选择应考虑以下几个因素: 1 ) 开发平台应具有良好的图形处理能力; 2 ) 支持面向对象( o o p ) 的程序设计; 华中科技大学硕士学位论文 3 ) 提供丰富的数据类型; 4 ) 系统应能在国内微机的主流机型5 8 6 及以上的机型上运行。 鉴于此,系统选择m i c r o s o f tv i s u a lc + + 6 0 和o p e n g l 作为开发平台,以c + + 语言作为开发语言,选择w i n d o w s 2 0 0 0 服务器版操作系统作为开发环境。 2 _ 3 2o p e n g l 及其在m a c r o s o f tv i s u a lc + + 6 0 中的运用 o p e n g l 被严格定义为“一种到图形硬件的软件接口”。从本质上讲,它是一个 完全可移植并且速度很快的3 d 图形和建模库。使用o p e n g l 可以创建视觉质量接近 射线跟踪算法的精致3 d 图形,然而其渲染速度要比射线跟踪算法快几个数量级。 o p e n g l 由计算机图形和动画领域公认的业界领袖s i l i c o ng r a p h i e s ( s g i ) 公司 开发。 1 o p e n g l 的工作方式 o p e n g l 是一种过程性而不是描述性的图形a p i 。它并不描述场景及其外观,程 序员其实是规定了实现某种特定外观或效果所需要的步骤。这些步骤牵涉到a p i 的调 用。它包括了超过2 0 0 条命令和函数。这些命令可用于在三维空间中绘制图元,比如 点、线和多边形。另外,o p e n g l 支持光照和阴影、纹理贴图、混合、透明度、动画 以及许多其他特殊效果和功能【2 7 1 。 图2 1 说明了o p e n g l 在典型应用程序中的位置。 l应用程序 图2 1o p e n g l 在典型应用程序中的位置 14 华中科技大学硕士学位论文 o p e n g l 命令的执行过程是一条流水线。图2 2 说明了o p e n g l 流水线过程。 lo 螺p e j r l 。乱i i 窨零嚣i l a p ii 1 备舍缓i 1 调用ii 冲区i量圈一圈 图2 2o p e n g l 流水线过程 2 o p e n g l 与m a c r o s o f t v i s u a lc + + 在m a c r o ,s o f t v i s u a lc + + 中使用o p e n g l a p i 编程一般要进行以下步骤: 1 ) 设置图形显示设备的象素格式,它指定了设备的绘制性质: 2 ) 创建图形资源环境。图形资源环境给o p e n g l a p i 提供了施展的空间; 3 ) 响应窗口消息,进行图形渲染; 4 ) 删除图形资源环境。 2 4 面向对象技术简介 面向对象的设计方法( o o p ) 引用了一个很重要的概念:对象( 2 9 j 。一般来说, 一个对象刻划了客观世界中的一个实体,将一组相似对象的共同属性和操作抽象形成 一个抽象对象,称作类。类是静态的概念,对象是动态的概念,是类的个实例。类 在面向对象的程序设计中表现为系统的基本运行实体,在程序设计中表现为一组具有 共同特征的数据和可以作用于其上的一组操作。对象的引入使计算机处理程序的过程 贴近于人们对客观事物的处理。 面向对象技术具有以下四种基本特性:继承性、封装性,多态性和动态联编。 继承性是一种相关关系,是父类和子类之间共享数据和方法的机制,子类继承 父类的数据和方法,同时允许定义新的数据和方法,继承性表明了类与类之间的一种 层次关系,也是一个以分级结构组织、构造和重用类的工具。 封装性是一项信息掩蔽技术,实现了对象属性特征和行为特征的封装,它使设 计人员能够清晰地标明他们所提供的服务,使用者只看得见对象提供的操作功能,看 不到其中的数据或操作代码,对象的封装机制的目的在于将对象的设计者和使用者分 华中科技大学硕士学位论文 o p e n g l 命令的执行过程是一条流水线。图2 2 说明了o p e n g l 流水线过程。 lo 螺p e j r l 。乱i i 窨零嚣i l a p ii 1 备舍缓i 1 调用ii 冲区i量圈一圈 图2 2o p e n g l 流水线过程 2 o p e n g l 与m a c r o s o f t v i s u a lc + + 在m a c r o ,s o f t v i s u a lc + + 中使用o p e n g l a p i 编程一般要进行以下步骤: 1 ) 设置图形显示设备的象素格式,它指定了设备的绘制性质: 2 ) 创建图形资源环境。图形资源环境给o p e n g l a p i 提供了施展的空间; 3 ) 响应窗口消息,进行图形渲染; 4 ) 删除图形资源环境。 2 4 面向对象技术简介 面向对象的设计方法( o o p ) 引用了一个很重要的概念:对象( 2 9 j 。一般来说, 一个对象刻划了客观世界中的一个实体,将一组相似对象的共同属性和操作抽象形成 一个抽象对象,称作类。类是静态的概念,对象是动态的概念,是类的个实例。类 在面向对象的程序设计中表现为系统的基本运行实体,在程序设计中表现为一组具有 共同特征的数据和可以作用于其上的一组操作。对象的引入使计算机处理程序的过程 贴近于人们对客观事物的处理。 面向对象技术具有以下四种基本特性:继承性、封装性,多态性和动态联编。 继承性是一种相关关系,是父类和子类之间共享数据和方法的机制,子类继承 父类的数据和方法,同时允许定义新的数据和方法,继承性表明了类与类之间的一种 层次关系,也是一个以分级结构组织、构造和重用类的工具。 封装性是一项信息掩蔽技术,实现了对象属性特征和行为特征的封装,它使设 计人员能够清晰地标明他们所提供的服务,使用者只看得见对象提供的操作功能,看 不到其中的数据或操作代码,对象的封装机制的目的在于将对象的设计者和使用者分 华中科技大学硕士学位论文 开,使用者不必知道对象行为实现的细节,只需应用设计者提供的消息命令对象。 当同样的消息可以被送到一个父类的对象和它的子类的对象时,会产生不同的 行为,这被称为多态性。这种特性允许在不同的对象上对一个相似的操作使用相同的 消启、。 联编是把一个过程调用和响应调用而需要执行的代码加以结合的过程,若联编 是在编译的时候进行的,叫做静态联编,动态联编则是在运行时进行的。 大型复杂程序的开发,参加的人数众多,各模块间的变量传递关系错综复杂, 程序处理中的某一局部修改将会以不同的方式波及全局。与传统的软件设计方法相 比,面向对象方法特别有利于大型复杂程序的开发,它可以有效地进行任务分解。它 采用数据抽象的机制划分模块,模块间的界面清晰,使得程序容易调试,可靠性好, 维护方便,编码重用率高。 同时,面向对象方法要求在大型软件着手研制前作充分准备,从全局着眼精心 设计好数据结构和类的划分。面向对象编程方法的优越性只有在充分照顾好全局的前 提下才能体现出来。 2 5 系统总体结构设计 整个系统以模型数据结构为中心,由模型处理、场景布局和虚拟漫游三个模块 组成。模型处理模块包括建模、模型导入、模型编辑等部分,场景布局模块包括模型 布局、碰撞检测、视点管理和灯光管理等部分,虚拟漫游模块则包括实时漫游、碰撞 检测等部分。图2 3 是该系统的总体结构框图。 华中科技大学硕士学位论文 开,使用者不必知道对象行为实现的细节,只需应用设计者提供的消息命令对象。 当同样的消息可以被送到一个父类的对象和它的子类的对象时,会产生不同的 行为,这被称为多态性。这种特性允许在不同的对象上对一个相似的操作使用相同的 消启、。 联编是把一个过程调用和响应调用而需要执行的代码加以结合的过程,若联编 是在编译的时候进行的,叫做静态联编,动态联编则是在运行时进行的。 大型复杂程序的开发,参加的人数众多,各模块间的变量传递关系错综复杂, 程序处理中的某一局部修改将会以不同的方式波及全局。与传统的软件设计方法相 比,面向对象方法特别有利于大型复杂程序的开发,它可以有效地进行任务分解。它 采用数据抽象的机制划分模块,模块间的界面清晰,使得程序容易调试,可靠性好, 维护方便,编码重用率高。 同时,面向对象方法要求在大型软件着手研制前作充分准备,从全局着眼精心 设计好数据结构和类的划分。面向对象编程方法的优越性只有在充分照顾好全局的前 提下才能体现出来。 2 5 系统总体结构设计 整个系统以模型数据结构为中心,由模型处理、场景布局和虚拟漫游三个模块 组成。模型处理模块包括建模、模型导入、模型编辑等部分,场景布局模块包括模型 布局、碰撞检测、视点管理和灯光管理等部分,虚拟漫游模块则包括实时漫游、碰撞 检测等部分。图2 3 是该系统的总体结构框图。 华中科技大学硕士学位论文 模型处理虚拟漫游 圈 压虱一 一匦卿 圆一 圈 l 堡型塑苎l 77 , 、 圃圃 一、 匝 ( 场景) 、 场景布局匦圈7 图2 3 系统的总体结构框图 系统首先进行建模,模型既可以是系统建立的简单模型,也可以是由三维建模 软件建立并导入系统的模型。接下来是模型的编辑。建好的模型可以进行编辑。模型 编辑的内容包括三维大小、颜色、材质、纹理等,以及复制和删除模型。在场景中各 个模型处理好之后,进行场景的布局。在布局的时候系统进行碰撞检测。之后进行场 景的虚拟漫游。 2 6 系统的数据结构及数据处理 2 6 1 文档一视图结构 系统使用的开发工具是m a c r o s o f t v i s u a lc h6 0 ,故而采用了它提供的程序结构 文档一视图结构。由于相关书籍甚多,。这里不作详细讨论。 2 6 2 模型数据的处理 1 模型数据的分类 首先需要说明的是系统将一个模型的数据分为两种:几何数据和管理数据,并 分别用两个类来管理。这样分类有如下两个原因: 华中科技大学硕士学位论文 模型处理虚拟漫游 圈 压虱一 一匦卿 圆一 圈 l 堡型塑苎l 77 , 、 圃圃 一、 匝 ( 场景) 、 场景布局匦圈7 图2 3 系统的总体结构框图 系统首先进行建模,模型既可以是系统建立的简单模型,也可以是由三维建模 软件建立并导入系统的模型。接下来是模型的编辑。建好的模型可以进行编辑。模型 编辑的内容包括三维大小、颜色、材质、纹理等,以及复制和删除模型。在场景中各 个模型处理好之后,进行场景的布局。在布局的时候系统进行碰撞检测。之后进行场 景的虚拟漫游。 2 6 系统的数据结构及数据处理 2 6 1 文档一视图结构 系统使用的开发工具是m a c r o s o f t v i s u a lc h6 0 ,故而采用了它提供的程序结构 文档一视图结构。由于相关书籍甚多,。这里不作详细讨论。 2 6 2 模型数据的处理 1 模型数据的分类 首先需要说明的是系统将一个模型的数据分为两种:几何数据和管理数据,并 分别用两个类来管理。这样分类有如下两个原因: 华中科技大学硕士学位论文 1 ) 可以使两种数据的概念表达的更清晰,并且当系统修改管理数据时,可以避 免修改几何数据。比如,当三维场景中一个景物被移动时,系统不必处理几何数据, 而只需改变管理数据中的c e n t e r 成员变量。当景物被缩放时,也只需修改管理数据中 的s c a l e 成员变量。 2 ) 一个模型可能由成千上万个点构成,如果有两个同样的模型,比如两把椅子, 形状相同,系统可以用同一个几何数据来表示,系统可以改变两把椅子各自的颜色、 缩放比例、空间位置等,只需简单的用一个几何数据加上两个管理数据来表达就够了, 从而节省了存储一个几何数据所占用的空间。 模型数据对应的两个类分别是c m o d e l 和c m o d e l d a t a 。c m o d e l 对应模型的管理 数据,c m o d e l d a t a 类对应模型的几何数据( c m o d e l 和c m o d e l d a t a 的数据结构详见 第三章) 。 2 模型的组织 在系统中存在许多模型,每个模型代表场景中一个相应的实体。所有模型的管 理数据由单向链表结构来组织,链表的表头用c m o d e l 类指针m 来记录,pfirstmodel m 是文档类的一个成员变量;所有模型的几何数据由数组结构来组织,_pfirstmodel 数组指针用c m o d e l d a t a 类指针g _ p m o d e l d a t a 记录,g p m o d e l d a t a 是一个全局变量。 之所以将g _ p m o d e l d a t a 设为全局变量是为了在整个系统中更快速、直接的访问几何 数据。 c m o d e l 类有一个整型变量i n d e x ,它的值是g _ p f i r s t m o d e l 数组的索引。通过这 个索引,管理数据与几何数据可以对应起来。系统访问一个模型首先通过搜索 m _ p f i r s t m o d e l 链表找到该模型的管理数据项,然后通过管理数据项中的i n d e x 变量 值就可以访问该模型对应的存储在g _ p f i r s t m o d e l 数组中的几何数据。对应的几何数 据类c m o d e l d a t a 有一个整型变量c o u n t ,它的值用来记录系统使用该几何数据的次 数。二者对应关系如图2 4 所示: 华中科技大学硕士学位论文 _ 3 ic o u n tc o u n tc o u n t i 2 i= 2 l- 1 23 图2 4 管理数据与几何数据的对应关系 在图2 4 中m _ p f i r s t m o d e l 链表的第一个结点的i n d e x 为2 ,对应g _ p f i r s t m o d e l 数组的第二项,m _ p f i r s t m o d e l 链表的第二个结点的i n d e x 为2 ,也对应g _ p f i r s t m o d e l 数组的第二项,依此类推。相应的,由于g _ p f i r s t m o d e l 数组的第二项的几何数据被 使用两次,所以它的c o u n t 值为2 。 3 模型链的搜索 模型链的搜索从链首开始,检查与键值相同的链结点,伪代码如下所示: c m o d e l + p m o d e l = m _ p f i r s t m o d e l ; w h i l e ( p m o d e l & & k e y ! = p m o d e l - k e y ) p m o d e l = p m o d e l - n c x t ; 其中k e y 为搜索的键值。 4 添加新模型 当一个新的模型被添加到系统时,搜索数组g _ p m o d e l d a t a 中的第一个未使用的 元素,将模型的几何数据存入其中,并初始化部分管理数据如模型的颜色、纹理和材 _ 一 19 宅 华中科技大学硕士学位论文 质然后根据几何数据计算出另一部分管理数据如包围盒等。具体添加模型时的模型 数据流图如图2 5 所示: 几 如 面 法 管理数据 - - - - - - - - - - - - - - - - - o 如:包圈盒 图2 5 添加模型时的模型数据流向图 5 模型的复制 模型的复制过程与上述过程不同。复制的模型和被复制的模型的颜色、纹理材 质和包围盒等数据可能相同,也可能不同,因此二者应该有不同的管理数据实例。但 二者的几何数据是相同的,所以可以共用同一个几何数据实例。在图2 4 中 m _ p f i r s t m o d e l 链表中的第一个结点和第二个结点的几何数据索引值都是2 ,它们共 用g p m o d e l d a t a 数组第二项所存储的几何数据值。 6 模型的修改 模型的修改对应于两类模型数据c m o d e l 和c m o d e l d a t a 的类实例的属性的修 改。 m 色理质瓤艴缌栅 。 数 鼍0 暂 华中科技大学硕士学位论文 7 模型的删除 删除一个模型涉及到两个类的实例的处理:c m o d e l 类和c m o d e l d a t a 类。首先 搜索mp f i r s t m o d e l 链表,查询要删除的管理数据结点g ,根据g 的索引找到 cp m o d e l d a t a 数组中对应的几何数据项j 。j 中c o u n t 值减1 ,如果c o l ! t 值为0 ,j 就析构自身,并将g _ p m o d e l d a t a 数组中对应项标识为未使用状态,供其他模型使用。 然后从m链表中删除结点g 。图 表示了上述过程的结构图及流程图。p f i r s t m o d e l 2 6 图2 6 删除模型时的结构图及流程图。左为结构图,右为流程图 2 7 小结 本章首先讨论了系统的功能需求分析,然后介绍了系统的开发平台,并简介面 向对象的设计方法,之后讨论了系统的总体结构设计,并探讨了系统的主要数据结构 和数据处理方法。 华中科技大学硕士学位论文 7 模型的删除 删除一个模型涉及到两个类的实例的处理:c m o d e l 类和c m o d e l d a t a 类。首先 搜索mp f i r s t m o d e l 链表,查询要删除的管理数据结点g ,根据g 的索引找到 cp m o d e l d a t a 数组中对应的几何数据项j 。j 中c o u n t 值减1 ,如果c o l ! t 值为0 ,j 就析构自身,并将g _ p m o d e l d a t a 数组中对应项标识为未使用状态,供其他模型使用。 然后从m链表中删除结点g 。图 表示了上述过程的结构图及流程图。p f i r s t m o d e l 2 6 图2 6 删除模型时的结构图及流程图。左为结构图,右为流程图 2 7 小结 本章首先讨论了系统的功能需求分析,然后介绍了系统的开发平台,并简介面 向对象的设计方法,之后讨论了系统的总体结构设计,并探讨了系统的主要数据结构 和数据处理方法。 华中科技大学硕士学位论文 3 三维景物建模方法研究 3 1 引言 三维景物建模方法是虚拟现实技术中最重要的技术领域,也是虚拟现实技术中 的关键技术之一。正如计算机图形领域的著名学者伊万萨瑟兰所说的那样:“计算 机屏幕只是一个窗口,但通过这个窗口,我们可以看见一个虚拟的世界。我们面临的 挑战是如何使这个世界看起来真实、动起来真实、听起来真实、摸起来真实! ”【3 0 】而 所有这些“真实”的实现,依靠的就是景物的建模技术。建模技术的内容十分广泛, 不仅涉及数学、动力学、运动学等基础学科,同时,还涉及机器人学、机械工程学和 生物机械学等应用学科。本章将讨论三维景物的建模方法问题。 3 2 三维景物建模的特点 三维景物建模同其他图形建模系统相比有自己的特点,主要表现在以下三个方 面f 3 l 】: 1 ) 三维景物可以是非常广泛的物体,往往需要构造大量完全不同类型的物体。 2 ) 有些物体必须有其自己的行为,其他图形建模系统往往只是构造静态的物体, 即使有运动,也往往是比较简单的诸如平移或旋转等形式。 3 ) 三维景物必须能够对观察者作出反应。当观察者与物体进行交互时,物体必 须以某种适当的方式作出反应,而不能忽视观察者的动作。 这些建模特点给三维景物建模建模技术和软件提出了特别的需求,包括: 1 ) 可重用性。虚拟现实中的三维景物是广泛的,开发一个景物的几何和行为模 型往往需要花费很大的精力,如果标准模型库可重用,则可节省大量劳动。 2 ) 在交互时,模型应能提供某种暗示,使得交互能按意图进行。 3 ) 在构造景物的集合结构时,必须充分考虑到是否有利于表现景物的行为。 正是上述三维景物建模的要求,使得三维景物建模技术经历了一个从几何建模、 物理建模到行为建模的发展过程。 31 3 三维景物建模的方法 华中科技大学硕士学位论文 3 三维景物建模方法研究 3 1 引言 三维景物建模方法是虚拟现实技术中最重要的技术领域,也是虚拟现实技术中 的关键技术之一。正如计算机图形领域的著名学者伊万萨瑟兰所说的那样:“计算 机屏幕只是一个窗口,但通过这个窗口,我们可以看见一个虚拟的世界。我们面临的 挑战是如何使这个世界看起来真实、动起来真实、听起来真实、摸起来真实! ”【3 0 】而 所有这些“真实”的实现,依靠的就是景物的建模技术。建模技术的内容十分广泛, 不仅涉及数学、动力学、运动学等基础学科,同时,还涉及机器人学、机械工程学和 生物机械学等应用学科。本章将讨论三维景物的建模方法问题。 3 2 三维景物建模的特点 三维景物建模同其他图形建模系统相比有自己的特点,主要表现在以下三个方 面f 3 l 】: 1 ) 三维景物可以是非常广泛的物体,往往需要构造大量完全不同类型的物体。 2 ) 有些物体必须有其自己的行为,其他图形建模系统往往只是构造静态的物体, 即使有运动,也往往是比较简单的诸如平移或旋转等形式。 3 ) 三维景物必须能够对观察者作出反应。当观察者与物体进行交互时,物体必 须以某种适当的方式作出反应,而不能忽视观察者的动作。 这些建模特点给三维景物建模建模技术和软件提出了特别的需求,包括: 1 ) 可重用性。虚拟现实中的三维景物是广泛的,开发一个景物的几何和行为模 型往往需要花费很大的精力,如果标准模型库可重用,则可节省大量劳动。 2 ) 在交互时,模型应能提供某种暗示,使得交互能按意图进行。 3 ) 在构造景物的集合结构时,必须充分考虑到是否有利于表现景物的行为。 正是上述三维景物建模的要求,使得三维景物建模技术经历了一个从几何建模、 物理建模到行为建模的发展过程。 31 3 三维景物建模的方法 华中科技大学硕士学位论文 3 3 1 几何建模 在虚拟现实中三维景物建模技术中最先得到发展的是几何建模。几何建模处理 物体的几何和形状的表示,研究图形数据结构等基本问题。几何建模技术的研究对象 是物体几何信息的表示与处理。它涉及表示几何信息的数据结构,以及相关的构造与 操纵该数据结构的算法。几何建模技术分为体素和结构两个方面。体素用来构造物体 的原子单位,体素的选取决定了建模系统所能构造的对象范围。结构用来决定体素如 何组合以构成新的对象【3 2 】。 几何建模可以进一步划分为层次建模法和属主建模法。 1 ) 层次建模法 层次建模法利用树形结构来表示物体的各个组成部分,对描述运动继承关系比 较有利。例如:手臂可描述成由肩关节、大臂、肘关节、小臂、腕关节、手掌、手指 构成的层次结构,而各手指又可以进一步细分。在层次模型中,较高层次构件的运动 势必改变较低层次构件的空间位置。例如:肘关节转动势必改变小臂、手掌的位置, 而肩关节的转动又影响到大臂、小臂等。 2 ) 属主建模方法 属主建模方法的思想是让同一种对象拥有同一个属主,属主包含了该类对象的 详细结构。当要建立一个属主对象的实例时,只要复制指向属主的指针即可。每一个 对象实例是一个独立的节点,拥有自己独立的方位变换矩阵。以汽车建模为例,汽车 的四个轮子有相同的结构,我们可以为之建立一个轮子属主,每次需要轮子实例时, 只要创建一个指向轮子属主的指针即可。通过独立的方位变换矩阵得到各个轮子的方 位。这样做的好处是简单高效、易于修改、一致性好。 几何建模在c a d 技术中得到了广泛的应用,也为虚拟现实建模技术研究奠定了 基础。但是,几何建模紧紧建立了对象的外观,而不能反映对象的物理特征,更不能 表现对象的行为,即几何建模只能实现虚拟现实“看起来象”的特征,而无法实现虚 拟现实的其他特征。因此,人们开始对建模技术进行进一步的探索。 3 3 2 物理建模 华中科技大学硕士学位论文 建模技术的进一步发展是物理建模,即:在建模时考虑对象的物理属性。分形 技术和粒子系统就是典型的物理建模方法 3 3 1 。 1 ) 分形技术 分形技术可以描述具有自相似特征的数据集。自相似的典型例子是树:若不考 虑树叶的区别,当我们靠近树梢时,树的细梢看起来也像一棵树。由相关的一组细梢 构成的一棵树枝,从一定距离观察时也像棵树。当然,由树枝构成的树从适当的距 离看时自然是一棵树。虽然,这种分析并不十分精确,但比较接近。这种结构上的自 相似称为统计意义上的自相似【3 0 1 。 自相似结构可用于复杂的不规则外形物体的建模。该技术首先被用于河流和山 体的地理特征建模。举一个简单的例子,我们可利用三角形来生成一个随机高程的地 形模型:取三角形三边的中点并按顺序连接起来,将三角形分割成四个三角形,同时 我们给每个中点随机的赋予一个高程值,然后,递归上述过程,我们就可产生相当真 实的山体。 分形技术的优点是用简单的操作就可以完成复杂的不规则物体建模,缺点是计 算量太大,不利于实时性。因此,在虚拟现实中一般只用于静态远景的建模。 2 ) 粒子系统 粒子系统是一种典型的物理建模系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食堂外包服务合同范本
- 水产海鲜售卖合同范本
- 水暖材料采购合同范本
- 食堂安全责任合同范本
- 项目工程管理合同范本
- 施工队劳务合同范本
- 服务业战略合作协议书
- 教育基地实践协议书
- 书店加盟联营协议书
- 2026-2031年中国商业智能(BI)行业市场分析与发展趋势研究报告
- 神经内科介入术后护理
- 老年病病人的皮肤管理
- 2025年度村级后备干部考试题库(含答案)
- 高校服务区域经济社会发展的评价激励机制研究
- 鸿蒙系统培训课件
- 中医药健康养老基地汇报
- 中国人口政策和问题
- 信息时代的生产技术-终考任务-国开(NMG)-参考资料
- (2025)国家公务员考试时事政治试题(附答案)
- 2025至2030中国公路养护行业产业运行态势及投资规划深度研究报告
- 2025年直通链路测距和定位白皮书
评论
0/150
提交评论