基于MFC的三维场景系统设计报告_第1页
基于MFC的三维场景系统设计报告_第2页
基于MFC的三维场景系统设计报告_第3页
基于MFC的三维场景系统设计报告_第4页
基于MFC的三维场景系统设计报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、研究生课程考试成绩单(试卷封面)院 系仪器科学与工程学院专业仪器科学与技术学生姓名学号课程名称面向对象的大型测控软件设计授课时间 2012年9月至2012年12月周学时3学分2简要评语考核论题基于MFC的三维场景系统设计总评成绩(含平时成绩)备注任课教师签名: 日期: 注:1. 以论文或大作业为考核方式的课程必须填此表,综合考试可不填。“简要评语”栏缺填无效。2. 任课教师填写后与试卷一起送院系研究生秘书处。3. 学位课总评成绩以百分制计分。基于MFC的三维场景系统设计报告1 引言1.1 编写目的 随着现在生活节奏的加快,网络对人民的生活越来越重要。虚拟漫游技术是虚拟现实技术的重要分支,在建筑

2、、旅游、游戏、航空航天、医学等多种行业发展很快。 本文在MFC的框架的,设计一种三维的漫游坏境,对场景中的道具可以进行自主的选择功能,实现更好的个性化设计,给人营造一种更加真实和方便操作的虚拟的漫游环境。1.2 背景1.3 术语说明MFC 微软基础类库,是一种应用程序框架OpenGL 是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库1.4 参考资料OpenGL编程指南 Dave Shreiner编著 人民邮电出版社OpenGL超级宝典 Richard S. Wright编著人民邮电出版社三维游戏设计师宝典:学OpenGL编3D游戏 唐明理编著 四川出版集团 C+程序设计 吴乃陵编著

3、 高等教育出版社MFC深入浅出 侯俊杰编著 华中科技大学出版社2 需求分析2.1功能需求 该软件要求完成三维场景的的绘制,能够在虚拟的场景中进行漫游,以增强现实感;能够对场景的3DS模型进行查看及移动,实现个性的场景设计。 本软件主要有如下功能:(1),三维场景显示功能:对要显示的3D模型在场景中进行显示,场景中应有天空盒、地面、树、文字和3DS模型;(2),场景漫游功能:实现视口变换,在虚拟环境中进行漫游,漫游时随地势的高度起伏变化,完全模拟人正常走路的情况;(3),场景中3DS模型的移动功能:可以任意移动你选中的模型,然后实现鼠标左键移动3D模型,实现个性场景布局;(4),场景中3DS模型

4、的查看功能:选中某3DS模型,右击可以弹出菜单,选择查看3D示意图,可以用子窗口进行显示,并且可以用鼠标控制旋转。2.2 性能需求(1),漫游环境的真实性:设计的三维漫游坏境应当源于现实生活的场景,漫游时应当流畅,体验性好。(2),时间特点 :操作响应时间不能太长,方便用户的个性选择。(3),程序结构优化:用MFC进行开发,应实现程序结构的优化,更好体现C+面向对象的思想。2.3 市场需求(1) ,可以用于3D游戏场景的布置,在游戏环境中可以漫游,以及游戏中道具的移动及查看;(2) 可以用于实现场景的编辑,实现用户对各3DS模型的操作:移动,旋转,删除,复制,达到个性的2.4 外部接口需求(1

5、),硬件接口:笔记本电脑。(2),软件接口:运行于Windows操作系统之上,在Microsoft Visual Studio坏境中进行开发的。 (3),软件属性需求:正确性,要求所开发的软件要达到用户的需求,运行时基本无误;可靠性,一般条件下,不应该出现故障;效率,对用户的要求要有极快的响应;易使用性,要求能尽量为用户的使用提供方便;可维护性,当软件出错时可以尽快的进行修改;可移植性,要求本软件能在Windows系统上进行移植;互联性,要求提供数据的导入和导出接口,以易于同其他系统的连接。3 系统设计3.1 设计思路 在MFC环境下设计,应用面向对象的思想更好的体现三维场景各部件的独立性和联

6、系性。在主View类中搭建OpenGL框架,在主窗口中实现整个场景的绘制;用子View类继承于它,实现子窗口的创建显示;将要显示的每个部分各封装到一个类中,并且将他们作为场景类的成员,在场景类中实现他们各自的显示。3.2 详细设计方案(1) ,用例图参与者:用户用例:三维场景显示、场景漫游、选中3DS模型及移动、子窗口查看3DS模型 参与者只有用户,用户参与用例三维场景显示、场景漫游、选中3DS模型及移动、子窗口查看3DS模型。 (2),类图SkyBox类、Sand类、Tree类、Text类、M3ds类是OpenGLView类的成员对象,共同实现场景的汇制;SubView继承于OpenGLVi

7、ew类,它是OpenGLDlg类的成员对象,实现子窗口显示3DS模型;T3DModel是M3ds类的成员对象,;Picture类是SkyBox类、Sand类、Tree类的成员函数,实现各自位图纹理生成。3.3 具体描述序号 名称 功能1OpenGLView类该类实现OpenGL框架的搭建及主窗口场景显示。属性:m_hRC;着色描述表m_pDC; 设备描述表m_skybox; 天空盒对象指针m_sand; 地面对象指针m_tree; 树对象指针m_3ds; 3DS对象指针m_text; 显示文字M3dsIndex; 拾取对象序号操作:RenderScene(); 画图DisplayScene()

8、; 漫游的接口函数2SubView类用于子窗口被选中3ds模型对象显示。属性:Height; 客户区高 Width; 客户区宽m_bDraw; 开始旋转的标志M3dsIndex; 选中模型的序号操作:RenderScene(); 显示选中的ds模型3OpenGLDlg类用于对话框的建立及与SubView的关联显示。属性:m_subview; 创建子窗口m3dSIndex; 选中3ds模型序号操作:OnInitDialog();对话框处理4Picture类实现所有对象中位图纹理的处理。属性:无操作:LoadBit();调位图loadtexture();产生纹理loadpicture();载入文件

9、LoadT16(); 16位色的贴图5Sand类用于地面地势的创建及显示。属性:fg_terrain;地域数组g_index; 顶点数组g_texcoord; 索引数组r; 旋转角度texture1; 定义纹理数组m_picture1; 定义Picture对象指针操作:Drawsand(); 画地面GetHeight(); 取地面高度InitTerrain(); 建立地域数组Loadsand(); 贴图操作6Skybox类用于天空盒的建立及显示。属性:a,wi,he,le; 天空盒对应的长宽高及高度调整值m_picture; 定义贴图对象指针 g_texture5; 定义纹理数组操作:Crea

10、teSkyBox(); 创建天空盒bool Loadskybox(); 载入天空盒纹理7M3ds类该类用于3ds容器建立、3ds模型的选中及显示。属性:s3ds1,s3ds2,s3ds3; 建立个3ds对象S3dsList; 存放ds的容器LBUTTONDOWN; 判断鼠标左键是否按下GET; 判断是否选中3ds模型操作:Init(); 对S3dsList容器进行初始化ShowM3ds(); S3dsList容器中3ds的显示Get3ds(); 拾取一个3dsMove(); 3ds的移动8T3DModel类是一个完整3ds模型对象,实现单个模型的载入和显示。属性:pos_x,int pos_z,float pos_y; 3ds模型的XYZ坐标r; 3ds模型旋转半径Re; 3ds模型角度size; 3ds模型比例大小cn;要载入的3ds模型文件操作:Set(); 设置3ds模型对象初始参数load3dobj(); 加载ds文件Init(); 初始化ds模型CleanUp(); 关闭文件,释放内存空间show3ds(); 显示ds模型9Text类该类用于文字的创建及显示。

温馨提示

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

评论

0/150

提交评论