- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
虚拟现实与仿真技术-实验报告樊娇2013211625
合肥工业大学
计算机与信息学院
实验报告
课 程:虚拟现实与仿真技术
专业班级:计算机科学与技术13-1班
学 号:2013211625
姓 名: 樊娇
实验一
实验名称
从3Dmax8中导出mesh并添加mesh到场景
实验过程或实验程序(增加的代码及代码注解)
根据实验指导书步骤将导出的文件添加进文件夹再更改相应的文件内容;
添加代码如下:
ent1 = m_pSceneManager-createEntity(Sphere,Box01.mesh);//获取实体对象,第一个参数是实体的名字,第二个参数是要导入的mesh文件
node1 = m_pSceneManager-getRootSceneNode()-createChildSceneNode();//创建节点
node1-translate(Vector3(-50,-10,-10));//设置实体的位置
node1-attachObject(ent1);//将实体附在场景上
ent1-setMaterialName(01_-_Default);//设置实体材质
上述代码所做更改有:
导入的mesh文件名、实体位置、实体材质以及将cbj.material中ambient 0 0 0 1处改为ambient 1 1 1 1
实验结果(包括必要的截图)
添加结果:
实验体会
通过此次试验,不但初步了解了3dmax模型的创建过程,我还知道了对模型的导出,以及如何添加到ogre模型库中有了一定了解,并能通过看代码,自己添加实体模型到场景中,更改模型的位置等。另外,我对orge也有了一定的了解,知道了在VS里面配置库目录,能够把场景转到orge里面展示。为后续实验打下坚实的基础,有利于后续实验开展。这只是实验的开始,我希望随着后面的学习能够对其有进一步的掌握。
实验二
实验名称
键盘输入控制摄像机的移动
实验过程或实验程序(增加的代码及代码注解)
1添加按键消息响应
2在OnKeyDown()消息响应函数中,添加按键控制
Vector3 trans = Vector3::ZERO;
switch(nChar){
caseA://实现按下a键向左移动
trans.x -=10;
m_pCamera-moveRelative(trans);
break;
caseD://实现按下d键向右移动
trans.x +=10;
m_pCamera-moveRelative(trans);
break;
caseG:
trans.y -=10;
m_pCamera-moveRelative(trans);//向下移动
break;
caseT:
trans.y +=10;
m_pCamera-moveRelative(trans);//向上移动
caseW:
trans.z -=10;
m_pCamera-moveRelative(trans);//向前移动
break;
caseS:
trans.z +=10;
m_pCamera-moveRelative(trans);//向后移动
break;
}
实验结果(包括必要的截图)
按下A键:
按下D键:
按下G键:
按下T键:
按下W键:
按下S键:
实验体会
本次实验主要是通过修改实验代码改变摄像机的视角,使之可以左右、前后、上下移动。实验前要对代码结构有个整体的了解,其次需要对其坐标的情况掌握,掌握一定基础然后才能修改代码。此次实验对于该实验项目有了更深层次的了解对于后续实验起到了良好的铺垫作用,通过此次实验我对ogre以及其下的编程有了更进一步的把握,对于该项目下的代码结构也有了初步的了解将会为后面的实验打好基础。
实验三
实验名称
添加动画
二.实验过程或实验程序(增加的代码及代码注解)
void CMFCOgre1View::CreateAnimation(Ogre::String MyAnimation)
{
//判断动画是否存在,如果动画存在,删除已有的动画
if (m_pSceneManager-hasAnimation(MyAnimation))
{
m_pSceneManager-destroyAnimation(MyAnimation);
}
//使用sceneManager来
文档评论(0)