虚拟现实与仿真技术-实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一

一.实验名称

Ogre部分仿真实验

二.实验过程或实验程序(增加的代码及代码注解)

1.从3Dmax8中导出mesh并添加mesh到场景

1.1启动3Dmax

1.在安装有3Dmax8的计算机上,可以使用两种不同的方法来启动3Dmax8: (1)在桌面上双击“3Dmax8”图标

(2)点击“开始”菜单,在“程序”中的选择“3Dmax8”

2.观察3Dmax8主窗口的布局。3Dmax8主要由若干元素组成:菜单栏、工具栏、以及停靠在右边的命令面板和底部的各种工具窗口。

1.2使用3Dmax8建模并导出mesh

1.2.1导出mesh的步骤如下:

1.启动3Dmax8

2.在停靠在右边的命令面板中,点击几何体按钮

3.选择标准几何体

4.在对象类型中选择对象(如:长方体),在“前”视口中,通过单击鼠标左键,创建出模型

5.在工具栏中单击“材质编辑器”按钮,通过上步操作,可开启“材质编辑器”对话框

6.在“材质编辑器”对话框中,点击漫反射旁方形按钮,进入到“材质/贴图浏览器”

7.在“材质/贴图浏览器”中选择位图,鼠标左键双击位图

8.弹出选择位图图像文件对话框,从本地电脑中选择一张图片

9.选择好图片,在材质编辑器对话框中,点击将材质指令给选定对象

10.点击菜单栏上的oFusion按钮,在弹出的菜单栏中选择Export Scene

11.选择文件夹并输入文件名qiu,点击保存,在弹出的对话框中勾选Copy Textures,点击Export按钮,此时mesh文件已成功导出

1.3导出的mesh文件放入到指定位置

1.找到mesh文件,把mesh文件放到当前电脑的OgreSDK的models中,以我的电脑为例,OgerSDK放在C盘中;

2.打开C盘,找到OgreSDK,打开OgreSDK,找到media,打开media文件夹,找到models,打开models文件夹,将mesh文件复制到此文件夹中;

3.将导出mesh文件附带的材质文件qiu.material放到OgreSDK的scripts (C:\OgreSDK\media\materials\scripts)中;

4.将导出mesn文件时同时导出的图片放到OgreSDK的textures (C:\OgreSDK\media\materials\textures)中。

1.4 mesh文件导入到场景中

1.4.1 mesh文件导入到场景中步骤:

1.启动vs2008

2.在“文件”菜单中选择“打开”,然后单击“项目/解决方案”

3.找到项目MFCOgre1,选择MFCOgre1.sln,点击打开按钮

4.打开MFCOgre1View.h,创建节点变量,SceneNode *node1(MFCOgre1View.h 中的第55行),创建实体变量Entity* ent1(MFCOgre1View.h 中的第57行);

5.打开MFCOgre1View.cpp, 在MFCOgre1View.cpp的构造函数中对创建的节点和实体对象初始化node1(NULL)、ent1(NULL)(在MFCOgre1View.cpp 的第37行和第39行)

6.获取根节点的子节点,并将其赋值给节点node1(MFCOgre1View.cpp 的第225行)

7.给创建的实体对象ent1赋值(MFCOgre1View.cpp 的第224行)

8.设置节点的位置(MFCOgre1View.cpp 的第226行)

9.将实体附在节点上(MFCOgre1View.cpp 的第227行)

1.5生成项目

使用“生成项目”功能可以将程序的源代码文件编译为可执行的二进制文件,方法十分简单:在“生成”菜单中选择“生成解决方案”。

在项目生成过程中,“输出”窗口会实时显示生成的进度和结果。如果源代码中不包含语法错误,会在最后提示生成成功,如下图所示:

1.6执行项目

在MFCOgre1中选择“调试”菜单中的“开始执行(不调试)”,可以执行刚刚生成的程序,运行出实验要求的结果。

2.键盘输入控制摄像机的移动

2.1添加按键消息响应

1.在菜单栏中选择视图

2.点击视图,在弹出的菜单窗口中,选择类视图

3.在类视图中,选择类MFCOgre1View

4.再次选择菜单栏中的视图,在菜单的菜单窗口中,选择其他窗口

5.在其他窗口中,选择属性窗口

6.在属性窗口中,点击消息按钮

7.找到WM_KEYDOWN,添加OnKeyDown()消息响应函数

2.2在OnKeyDown()消息响应函数中,添加按键控制

1.找到MFCOgre1View.cpp的onKeyDown()(MFCOgre1View.cpp 的第296行)

2.创建一个3维变量Vector3 trans = Vector3::ZERO;

2.使用switch语句,判断用户按下的按键

3.如果用户按下的是A键,将变量trans的x坐标减10,然后将摄像机移动到当前的trans坐标处(注:按键消息获取的都是大写字母),则摄像机向左移动,代码如下:

case'A':

trans.x -=10;

m_pCamera->moveRelative(trans);

break;

4. 如果用户按下的是D键,将变量trans的x坐标加10,然后将摄像机移动到当前的trans坐标处(注:按键消息获取的都是大写字母),则摄像机向左移动case…D':

trans.x +=10;

m_pCamera->moveRelative(trans);

break;

2.3生成项目

使用“生成项目”功能可以将程序的源代码文件编译为可执行的二进制文件,方法十分简单:在“生成”菜单中选择“生成解决方案”。

在项目生成过程中,“输出”窗口会实时显示生成的进度和结果。如果源代码中不包含语

法错误,会在最后提示生成成功,如下图所示:

相关文档
最新文档