电脑机箱内的结构设计
如今,计算机在我们生活中早已不是什么神秘之物,它广泛的应用于日常的生活与工作。很多人也许了解它的外在世界,可是对主机箱内部的结构并不熟知,人们的通常理解就是有许多电导线,芯片,插槽等一大堆零件。本课题对主机箱的内部结构进行研究,通过三维展示,可以将主机箱内部的每一个零件清晰的展现出来。
本次课题综合运用3D建模技术和虚拟交互技术,实现对主机箱外部和内部的设计和控制。本人主要负责对在3ds Max建好的模型进行交互设计,通过OpenSceneGraph为开发工具的应用程序接口,综合运用3D交互技术。 HM000028
本课题中的虚拟交互的设计主要运用了OpenSceneGraph中的事件管理器,漫游器,拖曳器,动画管理器等三维人机交互工具接口及CEGUI来进行界面布局,整个设计以Visual Studio2008为开发平台,运用C++语言完成了整个交互设计程序的开发。
本系统对机箱内的每一个零件进行了详细的虚拟交互的设计,并通过三维的演示展现其工作原理。电脑主机箱用三维交互技术展示出来后,人们对看不到的主机箱内部结构也有了清晰的认识。
关键词: 主机箱;OpenSceneGraph; 虚拟交互; 三维展示
Today, the computer in our lives is very common. It is widely used in daily life and work.Many people may know the world outside it, but they may don’t know the main chassis internal structure. It’s commonly understood there many electrical wires, chips, slots and a lot of parts. After careful research,you can master each part inside the chassis clearly.
Using 3D modeling technology and virtual interactive technology,the subject mainly achieves the mainframe exterior and interior device’s design and control . I mainly use OpenSceneGraph engine to achieve the control of computer mainframe device which has been completed with 3DS Max.Using OpenSceneGraph as a development tool interface. Comprehensive use of 3D interactive technology.
Design of virtual interaction in this topic mainly used the OpenSceneGraph event manager ,the rover device, the towing device, animation manager and three dimensional human-computer interaction tools, we also use CEHUI to layout interface .The design finished on the Visual Studio 2008 as the development platform and use of C++ language to complete the development of the interactive design procedure.
Each part of chassis is designed with the virtual interaction.And through three-dimensional presentations to show how it works. The main computer chassis using
three dimensional came out, the internal structure of the main chassis which people can not see also have a understanding.
Key words: host machine box; OpenSceneGraph; virtual interactive; 3D Display HM000028
4.2.1 节点类
(1) 场景图形BVH数:OSG采用包围体层次(BVH)来实现场景图形的管理。这里
的“包围体”指的是物体完全封闭在一个简单空间形体中,从而提高检测的运算速度。采用包围体层次场景图形通常采用树状结构来保存信息。一棵场景树包括一个根节点,多级内部的枝节节点以及多个末端的叶子节点。
(2)类中的方法:查看完整请+Q:351916072获取
默认的构造函数 Node()
重载函数 Node(const Node &node,const Copyop::SHALLOW_COPY)
(3)其他的节点类
Group节点:对节点起到组织作用,一般作为父节点或根节点。它允许有
一系列的孩子,相同的孩子或孩子之间有重复的,则会共享内存。
Geode节点:是一个几何Group节点,一般的可绘制几何体都通过它来向根节点进行渲染,是OSG几何绘制的最高管理节点。
4.2.2 场景类
(1)场景类定义:osgViewer::Viewer为每一个单独的场景(scene)保存一个单独的view。osgViewer:ViewerBase为osgViewer:Viewer的子类,它的方法都会被osgViewer:Viewer所继承。
(2)视景器:视景器属于osgViewer的子类,它的工作就是将多个场景图形组织在一起,结合场景节点的更新与遍历,将相机在每一帧所拍摄的内容连续不断的播放出来。OSG中的视景器包括单视景器和多视景器两种。前者只能保存一个完整的场景节点,并只能在唯一的视图中进行浏览或者管理。而后者却可以保存多个不同的场景节点树,这样不仅意味着从不同的角度观察同一个物体,而且在浏览不同的场景过程中可以共享或独用一个图形窗口。
4.2.3移动节点类
(1)类说明:osg::MatrixTransform是一个最常用的移动节点的类,在对三维模型进行虚拟交互设计时,要对三维模型进行控制,对模型进行平移或旋转时,不是对整个模型进行操作,而是对模型的各节点进行控制,然后乘以相应的矩阵达到最终的目的。
(2)四元树:当我们对模型进行连续的变换时,要同多个矩阵相乘,矩阵的左
乘和右乘的作用顺序是不同的,旋转也同理,当绕x,y,z轴旋转的角度就会产生万向节倾,这使欧拉角产生的病态现象,因为最后旋转矩阵依赖于多次旋转的先后顺序,有时绕一个轴旋转会映射到另一个轴去,甚至会导致轴上的旋转不可实现,四元数可避免这个问题,因为它不用三个分离的轴表示旋转,所以不会遭受万向节倾的干扰,这就意味着沿着球表面传播就像他们从一个方位移到另一个方位。四元数由一个实部和三个虚部表示,表示形式为:
Q=s+ai+bj+ck或者q=(s,v)
(3)几何节点:一个完整的几何体是由多个移动节点类构成,就相当于一个父节点是由n多个孩子节点构成。Osg::Geometry即为osg中的基本绘制集合类,用与绘制基本的几何体,而绘制好的几何体则放置在osg::Shape类中,它的子类线包含了内置的盒子,球这类的原始类型,从它的类名也可以看出它的主要功能是绘制几何体形状。
4.2.4智能指针类
(1)定义:当OSG的内存引用计数机制,用户名必须特殊的参照对象类(Referenced),使用智能计数模板ref_ptr<T>来定义和管理参照对象的实例。当用户使用该模板管理一个Referenced对象时,内存计数器启动并加1;同理,当ref_ptr模板超出其承受范围时,类实例的内存计数器将被减1,如果对象减到0,则对象自动被释放。Osg中用osg::ref_ptr<T>类来表示智能指针。
(2)类中的方法:
ref_ptr( ) 默认的构造函数
ref_ptr(T * ptr) 传入参数对象引用计数器加1
~ref_ptr( ) 析构智能指针引用计数器减1
T*get( )const 将参数对象的实例输出
bool valid( ) const 判断智能指针是否合法
T*realse( ) 将参照对象的实例输出
4.3 OSG的重要接口
4.3.1 CEGUI库 查看完整请+Q:351916072获取
CEGUI是自由免费的GUI库,用C++语言实现开发,完全面向对象,CEGUI的渲染引擎需要3D图形的API支持(如OpenGL,Direct3D等)。CEGUI是一个能植入向像ORGE功能全面的GUI库,它不用自己做渲染,也不与键盘鼠标事件相联系。我们必须创建一个渲染器给它,才能够让CEGUI对三维模型的界面进行渲染。只有手工的将它们直入系统内,它们才能够理解键盘鼠标事件。本质
上CEGUI通过想窗口提供第二个场景,这个场景是通过渲染队列完成后才渲染的。这个场景仅仅由一系列3D矩形对象组成。渲染矩阵是为了消除矩阵的突出与倾斜,根据他们所在的位置而建立的。使用这些矩阵,添加材质和响应就构成了我们系统的用户界面。3D模型的用户界面会自动缩放元素来适应屏幕并使用硬件材质过滤,这样设计的界面会比C++设计的标准的2D界面更加快速和美观,如图4-1,即为CEGUI构建用户界面的原理图。
目 录
摘要 I
ABSTRACT..............................................................................................II
第1章 绪论 2
1.1项目背景 3
1.2项目任务 4
第2章 项目技术框架及设计流程 4
2.1 3D建模技术 5
2.2 虚拟交互技术 5
2.3 项目设计流程 7
第3章 电脑机箱的简单介绍..................................................................7
3.1机箱的主要部件 9
3.2 机箱模型的介绍 11
第4章 OSG渲染引擎 10
4.1 OSG引擎 12
4.1.1 OSG引擎介绍 12
4.1.2 OSG引擎的优势和不足 12
4.2 OSG基本的类 13
4.2.1 节点类 13
4.2.2 场景类 14
4.2.3移动节点类 14
4.2.4智能指针类 15
4.3 OSG的重要接口 15
4.3.1 CEGUI库 15
4.3.2事件处理器 16
4.3.3 相机节点 17
4.3.4 漫游器 17
4.3.5动画管理器 18
第5章 概要设计 17
5.1整体设计思想 19
5.2 功能模块图 19
5.3 界面布局 20
5.3.1 场景管理设计 20
5.3.2 整体界面布局设计 21
第6章 详细设计与实现 20
6.1 OSG的环境配置 22
6.2 三维交互的详细设计 22
6.2.1 鼠标交互的详细设计 22
6.2.2 系统的漫游设计 25
6.2.3 拖曳控制的详细设计 26
6.3 三维动画详细设计 30
6.3.1 场景动画的详细设计 30
6.3.2 装卸动画的详细设计 33
第7章 总结与展望 36
7.1 总结 38
7.2 展望 39
致 谢 41
附 录 41
英文部分 41
中文部分 47 查看完整请+Q:351916072获取
本次课题综合运用3D建模技术和虚拟交互技术,实现对主机箱外部和内部的设计和控制。本人主要负责对在3ds Max建好的模型进行交互设计,通过OpenSceneGraph为开发工具的应用程序接口,综合运用3D交互技术。 HM000028
本课题中的虚拟交互的设计主要运用了OpenSceneGraph中的事件管理器,漫游器,拖曳器,动画管理器等三维人机交互工具接口及CEGUI来进行界面布局,整个设计以Visual Studio2008为开发平台,运用C++语言完成了整个交互设计程序的开发。
本系统对机箱内的每一个零件进行了详细的虚拟交互的设计,并通过三维的演示展现其工作原理。电脑主机箱用三维交互技术展示出来后,人们对看不到的主机箱内部结构也有了清晰的认识。
关键词: 主机箱;OpenSceneGraph; 虚拟交互; 三维展示
Today, the computer in our lives is very common. It is widely used in daily life and work.Many people may know the world outside it, but they may don’t know the main chassis internal structure. It’s commonly understood there many electrical wires, chips, slots and a lot of parts. After careful research,you can master each part inside the chassis clearly.
Using 3D modeling technology and virtual interactive technology,the subject mainly achieves the mainframe exterior and interior device’s design and control . I mainly use OpenSceneGraph engine to achieve the control of computer mainframe device which has been completed with 3DS Max.Using OpenSceneGraph as a development tool interface. Comprehensive use of 3D interactive technology.
Design of virtual interaction in this topic mainly used the OpenSceneGraph event manager ,the rover device, the towing device, animation manager and three dimensional human-computer interaction tools, we also use CEHUI to layout interface .The design finished on the Visual Studio 2008 as the development platform and use of C++ language to complete the development of the interactive design procedure.
Each part of chassis is designed with the virtual interaction.And through three-dimensional presentations to show how it works. The main computer chassis using
three dimensional came out, the internal structure of the main chassis which people can not see also have a understanding.
Key words: host machine box; OpenSceneGraph; virtual interactive; 3D Display HM000028
4.2.1 节点类
(1) 场景图形BVH数:OSG采用包围体层次(BVH)来实现场景图形的管理。这里
的“包围体”指的是物体完全封闭在一个简单空间形体中,从而提高检测的运算速度。采用包围体层次场景图形通常采用树状结构来保存信息。一棵场景树包括一个根节点,多级内部的枝节节点以及多个末端的叶子节点。
(2)类中的方法:查看完整请+Q:351916072获取
默认的构造函数 Node()
重载函数 Node(const Node &node,const Copyop::SHALLOW_COPY)
(3)其他的节点类
Group节点:对节点起到组织作用,一般作为父节点或根节点。它允许有
一系列的孩子,相同的孩子或孩子之间有重复的,则会共享内存。
Geode节点:是一个几何Group节点,一般的可绘制几何体都通过它来向根节点进行渲染,是OSG几何绘制的最高管理节点。
4.2.2 场景类
(1)场景类定义:osgViewer::Viewer为每一个单独的场景(scene)保存一个单独的view。osgViewer:ViewerBase为osgViewer:Viewer的子类,它的方法都会被osgViewer:Viewer所继承。
(2)视景器:视景器属于osgViewer的子类,它的工作就是将多个场景图形组织在一起,结合场景节点的更新与遍历,将相机在每一帧所拍摄的内容连续不断的播放出来。OSG中的视景器包括单视景器和多视景器两种。前者只能保存一个完整的场景节点,并只能在唯一的视图中进行浏览或者管理。而后者却可以保存多个不同的场景节点树,这样不仅意味着从不同的角度观察同一个物体,而且在浏览不同的场景过程中可以共享或独用一个图形窗口。
4.2.3移动节点类
(1)类说明:osg::MatrixTransform是一个最常用的移动节点的类,在对三维模型进行虚拟交互设计时,要对三维模型进行控制,对模型进行平移或旋转时,不是对整个模型进行操作,而是对模型的各节点进行控制,然后乘以相应的矩阵达到最终的目的。
(2)四元树:当我们对模型进行连续的变换时,要同多个矩阵相乘,矩阵的左
乘和右乘的作用顺序是不同的,旋转也同理,当绕x,y,z轴旋转的角度就会产生万向节倾,这使欧拉角产生的病态现象,因为最后旋转矩阵依赖于多次旋转的先后顺序,有时绕一个轴旋转会映射到另一个轴去,甚至会导致轴上的旋转不可实现,四元数可避免这个问题,因为它不用三个分离的轴表示旋转,所以不会遭受万向节倾的干扰,这就意味着沿着球表面传播就像他们从一个方位移到另一个方位。四元数由一个实部和三个虚部表示,表示形式为:
Q=s+ai+bj+ck或者q=(s,v)
(3)几何节点:一个完整的几何体是由多个移动节点类构成,就相当于一个父节点是由n多个孩子节点构成。Osg::Geometry即为osg中的基本绘制集合类,用与绘制基本的几何体,而绘制好的几何体则放置在osg::Shape类中,它的子类线包含了内置的盒子,球这类的原始类型,从它的类名也可以看出它的主要功能是绘制几何体形状。
4.2.4智能指针类
(1)定义:当OSG的内存引用计数机制,用户名必须特殊的参照对象类(Referenced),使用智能计数模板ref_ptr<T>来定义和管理参照对象的实例。当用户使用该模板管理一个Referenced对象时,内存计数器启动并加1;同理,当ref_ptr模板超出其承受范围时,类实例的内存计数器将被减1,如果对象减到0,则对象自动被释放。Osg中用osg::ref_ptr<T>类来表示智能指针。
(2)类中的方法:
ref_ptr( ) 默认的构造函数
ref_ptr(T * ptr) 传入参数对象引用计数器加1
~ref_ptr( ) 析构智能指针引用计数器减1
T*get( )const 将参数对象的实例输出
bool valid( ) const 判断智能指针是否合法
T*realse( ) 将参照对象的实例输出
4.3 OSG的重要接口
4.3.1 CEGUI库 查看完整请+Q:351916072获取
CEGUI是自由免费的GUI库,用C++语言实现开发,完全面向对象,CEGUI的渲染引擎需要3D图形的API支持(如OpenGL,Direct3D等)。CEGUI是一个能植入向像ORGE功能全面的GUI库,它不用自己做渲染,也不与键盘鼠标事件相联系。我们必须创建一个渲染器给它,才能够让CEGUI对三维模型的界面进行渲染。只有手工的将它们直入系统内,它们才能够理解键盘鼠标事件。本质
上CEGUI通过想窗口提供第二个场景,这个场景是通过渲染队列完成后才渲染的。这个场景仅仅由一系列3D矩形对象组成。渲染矩阵是为了消除矩阵的突出与倾斜,根据他们所在的位置而建立的。使用这些矩阵,添加材质和响应就构成了我们系统的用户界面。3D模型的用户界面会自动缩放元素来适应屏幕并使用硬件材质过滤,这样设计的界面会比C++设计的标准的2D界面更加快速和美观,如图4-1,即为CEGUI构建用户界面的原理图。
目 录
摘要 I
ABSTRACT..............................................................................................II
第1章 绪论 2
1.1项目背景 3
1.2项目任务 4
第2章 项目技术框架及设计流程 4
2.1 3D建模技术 5
2.2 虚拟交互技术 5
2.3 项目设计流程 7
第3章 电脑机箱的简单介绍..................................................................7
3.1机箱的主要部件 9
3.2 机箱模型的介绍 11
第4章 OSG渲染引擎 10
4.1 OSG引擎 12
4.1.1 OSG引擎介绍 12
4.1.2 OSG引擎的优势和不足 12
4.2 OSG基本的类 13
4.2.1 节点类 13
4.2.2 场景类 14
4.2.3移动节点类 14
4.2.4智能指针类 15
4.3 OSG的重要接口 15
4.3.1 CEGUI库 15
4.3.2事件处理器 16
4.3.3 相机节点 17
4.3.4 漫游器 17
4.3.5动画管理器 18
第5章 概要设计 17
5.1整体设计思想 19
5.2 功能模块图 19
5.3 界面布局 20
5.3.1 场景管理设计 20
5.3.2 整体界面布局设计 21
第6章 详细设计与实现 20
6.1 OSG的环境配置 22
6.2 三维交互的详细设计 22
6.2.1 鼠标交互的详细设计 22
6.2.2 系统的漫游设计 25
6.2.3 拖曳控制的详细设计 26
6.3 三维动画详细设计 30
6.3.1 场景动画的详细设计 30
6.3.2 装卸动画的详细设计 33
第7章 总结与展望 36
7.1 总结 38
7.2 展望 39
致 谢 41
附 录 41
英文部分 41
中文部分 47 查看完整请+Q:351916072获取
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/3290.html