[OGRE]基础教程来二发:来谈一谈坐标系统

上一回我们讲到,屏幕出现了一个机器人。

不过为毛这个机器人没有面对着我们呢?这是因为机器人模型预设的方向就是正对X正方向的。

我们先来了解一下 OGRE 的坐标和向量。

与其它图形引擎一样,OGRE 使用 XZ 面作为其水平面,Y 轴作为纵轴。

当你面对着屏幕时,从左至右的方向为 X 轴正方向,从下至上为 Y 轴正方向,屏幕从里至外为 Z 轴的正方向(指着你)。


现在我们已经了解了 OGRE 中的方位了,让我们再次回到上次的代码部分,可以发现在代码中并没有指定机器人的方向,怪不得人家不鸟你。

实际上在 OGRE 中大量的函数都有自己默认的参数值,

例如SceneNode::createChildSceneNode成员函数有三个参数:场景节点的名称、位置及方向,该成员的位置默认值为(0,0,0)

让我们创建另一个场景节点,这次我们指定它的位置方位信息

#include "ExampleApplication.h"
class TutorialApplication : public ExampleApplication
{
public:
	TutorialApplication()
	{
	}
	~TutorialApplication() 
	{
	}
protected:
	void createScene(void)
	{
		//设置背景灯光
		mSceneMgr->setAmbientLight( ColourValue( 1, 1, 1 ) );

		//第一个机器人
		Entity *ent1 = mSceneMgr->createEntity( "Robot", "robot.mesh" );
		SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "RobotNode" );
		node1->attachObject( ent1 );

		//第二个机器人
		Entity *ent2 = mSceneMgr->createEntity( "Robot2", "robot.mesh" );
		SceneNode *node2 = mSceneMgr->getRootSceneNode()->createChildSceneNode("RobotNode2", Vector3( 50, 0, 0 ) );
		node2->attachObject( ent2 );
	}
};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值