ogre 本地空间,父节点空间,世界空间

 

本地空间就是以物体自己所在的点作为坐标系的原点的坐标系;

父节点空间就是以父节点所在位置为坐标系原点的坐标系;

世界空间就是以(0,0, 0)为坐标原点的坐标系。

场景节点在默认的情况下变换空间为父节点空间(TS_PARENT),所以在使用父节点空间变换的时候不需要额外的设置:

mSceneNode->translate(100.0, 10.0, 0.0);

 

但是如果需要在世界空间进行节点变换,就的通过下面的方法来调用:

 

mSceneNode->translate(100.0, 10.0, 0.0, TS_WORLD);

 

对于本体空间的变换也同样如此。下面表示将一个节点沿着它朝向的方向“向前”移动100个单位:

 

mSceneNode->translate(0.0,0.0,100.0,TS_LOCAL);

 

对于旋转场景节点而言,默认的变换空间为本地空间(TS_LOCAL);如果你需要不同的旋转空间,必须明确的告知Ogre:

 

// 对象绕自己的Y轴旋转一弧度,大约57角度

mSceneNode->yaw(Ogre::Radian(1.0));

 

// 对象绕父节点的X轴旋转一弧度,大约57角度

mSceneNode->pitch(Ogre::Radian(1.0), TS_PARENT);

 

// 对象绕世界的Z轴旋转一弧度,大约57角度

mSceneNode->roll(Ogre::Radian(1.0),TS_WORLD);

 

缩放不需要关系空间;它在节点本身执行,同时影响节点的所有子节点。

 

// 在X轴缩放两倍,其他轴不缩放

mSceneNode->scale(2.0, 1.0, 1.0);

 

 

提示:如果你在缩放场景节点的时候,发现实体模型忽然产生了奇怪的变化。可能是因为法线也一同被缩放所致,因为光线计算会参照标准法线的数据,而缩放后的法线将会对计算产生相应的影响。解决的办法是通过在缩放后调用setNormaliseNormals()方法,不过这也会消耗一些执行效率。

 

转载: http://www.cnblogs.com/kex1n/archive/2011/11/18/2253893.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值