游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1419|回复: 0

ogre的空间变换

[复制链接]

8

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2009-11-5 18:36:00 | 显示全部楼层 |阅读模式
void createScene() {
...

//第一个物体(坐标原点)  
Entity* head = mSceneMgr->createEntity("object1", "ogrehead.mesh");   
head->setMaterialName("Examples/Rockwall");
SceneNode* node1 = rootNode->createChildSceneNode();
node1->attachObject(head);

//第二个物体
head = mSceneMgr->createEntity("object2", "ogrehead.mesh");
SceneNode* node2 = node1->createChildSceneNode();
node2->attachObject(head);
node2->translate(Vector3(50, 0, 0), SceneNode::TS_PARENT);

//第三个物体
head = mSceneMgr->createEntity("object3", "ogrehead.mesh");
SceneNode* node3 = node2->createChildSceneNode();
node3->attachObject(head);
node3->translate(Vector3(0, 50, 0), SceneNode::TS_WORLD);
node3->yaw(Degree(90), SceneNode::TS_LOCAL);
}

按照空间变换分析,node1在原点,node2的世界坐标是(50, 0, 0),node3的世界坐标是(0, 50, 0),
但是从显示的结果来看node3是(50, 50, 0),
无论用哪个TransformSpace值,结果都是一样的:translate都是相对于parent,旋转都是在loacal中。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-18 09:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表