OGRE学习(2)
来源:互联网 发布:新加坡网络制式 编辑:程序博客网 时间:2024/06/04 18:39
首先看
Ogre::SceneNode* node = mSceneMgr->createSceneNode("Node1");mSceneMgr->getRootSceneNode()->addChild(node);
将一个节点加到根节点,该节点的位子是相对父节点来计算的。
Ogre::Entity* ent = mSceneMgr->createEntity("MyEntity","Sinbad.mesh");Ogre::SceneNode* node = mSceneMgr->createSceneNode("Node1");node->setPosition(10,10,0);mSceneMgr->getRootSceneNode()->addChild(node);node->attachObject(ent);Ogre::Entity* ent2 = mSceneMgr->createEntity("MyEntity2","Sinbad.mesh");Ogre::SceneNode* node2 = mSceneMgr->createSceneNode("Node2");node->addChild(node2);node2->setPosition(10,0,0);node2->attachObject(ent2);node2->pitch(Ogre::Radian(Ogre::Math::HALF_PI));Ogre::Entity* ent3 = mSceneMgr->createEntity("MyEntity3","Sinbad.mesh");Ogre::SceneNode* node3 = mSceneMgr->createSceneNode("Node3");node->addChild(node3);node3->translate(20,0,0);node3->yaw(Ogre::Degree(90.0f));node3->attachObject(ent3);Ogre::Entity* ent4 = mSceneMgr->createEntity("MyEntity4","Sinbad.mesh");Ogre::SceneNode* node4 = mSceneMgr->createSceneNode("Node4");node->addChild(node4);node4->setPosition(30,0,0);node4->roll(Ogre::Radian(Ogre::Math::HALF_PI));node4->attachObject(ent4);
(Ogre::Radian(Ogre::Math::HALF_PI)) 用来绕X 轴旋转结点。就如我们之前所说的一样,这
个函数接受一个弧度单位作为参数并且我们使用π/2 ,也就是旋转90 度
setPosition(x,y,z) 和translate(x,y,z)函数之间的不同setPosition()函数仅是设置点,没什么可
说。translate() 以给定的值设置点的位置,但是它是相对于现在的位置变换。如果一个场景
结点在位置(10,20,30)并我们调用setPosition(30,20,10),那个结点在就在世界空间的位置
(30,20,10)。另一方面,如果我们调用translate(30,20,10),结点就会在位置(40,40,40)。这点
区别虽小,但是相当重要。如果我们在正确的环境中使用这两个函数他们都是有效的,比如
当我们想要设置结点在场景中的位置,我们将会使用setPosition(x,y,z)函数。然而,当我们
想要移动一个已经在场景中设置好的结点,我们将会使用translate(x,y,z).
yaw() 函数绕Y 轴旋转场景结点。我们使用Ogre::Degree() 来代替Ogre::Radian(),当
然,pitch 和yaw 仍然需要使用一个弧度参数。然而,Ogre 3D 提供了一个可以使编译器自
动转换角度到弧度的操作的Degree()类。因此,程序员可以随心所欲使用一个弧度或角度单
位来旋转场景结点了。不同的类命令确保类的使用是清楚的,这样防止使用混淆或者可能出
错的资源。
roll()函数。这个函数绕Z 轴
旋转场景结点。同样的, 我们可以使用roll(Ogre::Degree(90.0f)) 来代替
roll(Ogre::Radian(Ogre::Math::HALF_PI))。
形成的效果就是:
- OGRE学习(2)
- OGRE学习(1)
- OGRE学习(3)
- OGRE学习(4)
- OGRE学习(5)
- 初探Ogre 引擎!---- (2)OGRE初级教程
- Ogre学习笔记(一)
- Ogre学习笔记(二)创建第一个OGRE程序
- OGRE学习笔记(一)Vs2010+Ogre配置
- Ogre学习笔记(2):Mesh的加载
- 学习OGRE~~
- 学习Ogre
- Ogre学习
- ogre 学习
- ogre学习
- 学习OGRE~~
- Ogre学习笔记(1):Basic Tutorial
- Ogre学习笔记(4):OctreeSceneManager
- MVC模式(基础知识)
- hdu 2829 Lawrence, hdu 3045 Picnic Cows,hdu 3480 Division , 斜率dp
- apache负截低,但是访问很慢,MaxClients设置太小的原因
- 小题目 筛选法求素数
- 下载Youtube视频的几种常用方法和软件
- OGRE学习(2)
- 支持多个版本的AutoCAD——C#中的条件编译——Through the Interface
- 问题:上传文件页面上传文件失败 无法将MP3文件导入数据库(已经上传代码)
- 家族 并查集
- 代码解释:java反射调用的原理
- [Usaco 2011 Dec]Umbrellas for Cows
- Lookaside List 详解
- MVC模式
- 批量删除自定义栏目