Ogre_初学指导_3_"场景节点控制”
来源:互联网 发布:ps淘宝修图教程视频 编辑:程序博客网 时间:2024/04/30 01:30
1、 位置设置
setPosition() & translate().
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).
2、 旋转:
pitch(i) 绕X轴旋转
yaw(i) 绕Y轴旋转
roll(i) 绕Z轴旋转
其中Degree() [角度值],Radian()[弧度值]
3、 缩放
scale(x,y,z)[缩放]
4、 程序实现
创建节点Node1 设置其位置为(10,10,0);
创建另一节点Node2,位置(10,0,0),我 们 代 替setPosition(x,y,z) 函 数 调 用 了translate(x,y,z) 函 数 。
第三个节点Node3,我们缩放它scale(0.1,0.1,0.1)。并且有原来的rootNode节点创建改为直接由node1点创建成其childSceneNode,代码:
SceneNode *node3 =node->createChildSceneNode("Node3",Ogre::Vector3(20,0,0));
所有代码如下:
#include "ExampleApplication.h"
using namespace Ogre;
class example1 : public ExampleApplication
{
protected:
voidcreateScene()
{
//Node1
Entity*ent = mSceneMgr->createEntity("MyEntity","Sinbad.mesh");
SceneNode*node = mSceneMgr->createSceneNode("Node1");
node->setPosition(10,10,0);
mSceneMgr->getRootSceneNode()->addChild(node);
node->attachObject(ent);
//Node2
Entity*ent2 = mSceneMgr->createEntity("MyEntity2","Sinbad.mesh");
SceneNode*node2 = mSceneMgr->createSceneNode("Node2");
node->addChild(node2);
node2->translate(20,0,0);
//rotatethe model
node2->pitch(Ogre::Radian(Ogre::Math::HALF_PI));//Xrotate 90°
node2->attachObject(ent2);
//Node3
Entity*ent3 = mSceneMgr->createEntity("MyEntity3","Sinbad.mesh");
SceneNode*node3 = node->createChildSceneNode("Node3", Ogre::Vector3(20,0,0));//Ichange the code.
node->addChild(node3);
node3->yaw(Ogre::Degree(90.0f));//Y
node3->attachObject(ent3);
node3->scale(0.1,0.1,0.1);
}
public:
example1(){}
~example1(){}
};
int main()
{
example1ex1;
ex1.go();
return0;
}
- Ogre_初学指导_3_"场景节点控制”
- Ogre_初学指导_2_"场景绘制"
- Ogre_初学指导_5_"场景元素:平面、光源、阴影、摄像机、视口"
- Ogre_初学指导_0_"环境配置"
- Ogre_初学指导_1_"加载模型"
- Ogre_初学指导_7_"帧监听:鼠标控制、渲染模式及计时器"
- Ogre_初学指导_4_"空间坐标系统及其操作”
- Ogre_初学指导_8_"模型动画:简单人物动画"
- Ogre_初学指导_6_"帧监听(FrameListener) 及监听键盘(Keyboard)操作"
- Ogre场景、节点、摄像机通过自动、鼠标、键盘控制移动
- 【转】Flex初学指导
- Flex初学指导
- 初学Linux指导贴
- 求大神指导,本人初学
- 操作场景节点
- Lua_场景节点事件
- 对依赖注入技术的初学指导
- 数据结构实验指导(初学内容)
- TM、ETM+数据介绍.doc
- ubuntu 下安装 jags 及 R2jags
- 彩色转黑白公式
- 不同浏览器不同分辨率,调用不同的css文件
- Android中Bitmap和Drawable
- Ogre_初学指导_3_"场景节点控制”
- 有6种不同颜色的球,分别记为1,2,3,4,5,6,每种球有无数个。现在取5个球,求在以下的条件下:
- 考勤机选购注意要点罗列
- 守护进程
- list all process in remote computer ,kill a process by terminate command
- android jar 没有找到PhoneWindow
- Activity的两个神秘方法onSaveInstanceState() 和 onRestoreInstanceState()
- eclipse启动tomcat 访问http://localhost:8080 报404错误
- 马云剖析阿里未来三大业务:平台、金融和数据