游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2881|回复: 4

OGRE中两个SceneNode不能attach同一个Entity吗?

[复制链接]

4

主题

9

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2007-3-10 12:13:00 | 显示全部楼层 |阅读模式
  OGRE中两个SceneNode不能attach同一个Entity吗?就好像如下代码:

  mSceneMgr->setAmbientLight( ColourValue( 1, 1, 1 ) );

  //两个node1和node2 attach同一个ent1
  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( ent1 );

  这个代码在运行时会出错。
  这样效率不是很低吗,如果我要在两个不同地方渲染同一个Entity,那么相同的Entity要创建两次,这样不是很耗费内存吗?

4

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2007-3-11 00:10:00 | 显示全部楼层

Re: OGRE中两个SceneNode不能attach同一个Entity吗?

<&ltro Ogre 3d Programming>>一书明确说明了:不能同时把一个实例对象挂到两个场景结点上。建议找一本看看。上述内容在第五章有说明。

32

主题

232

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
发表于 2007-3-12 13:42:00 | 显示全部楼层

Re:OGRE中两个SceneNode不能attach同一个Entity吗?

Entity *ent1=mSceneMgr.CreateEntity("Robot1","Robot.mesh");
Entity *ent2=ent1->clone("Robot2");
SceneNode *node1=mSceneMgr.getRootSceneNode()->createChildSceneNode("Robot1Node");
SceneNode *node2=mSceneMgr.getRootSceneNode()->createChildSceneNode("Robot2Node");
node1.attachObject(ent1);
node2.attachObject(ent2);

32

主题

232

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
发表于 2007-3-12 13:48:00 | 显示全部楼层

Re:OGRE中两个SceneNode不能attach同一个Entity吗?

只要不是模型在内存存两份,也浪费不了什么空间

8

主题

67

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2007-3-18 12:26:00 | 显示全部楼层

Re:OGRE中两个SceneNode不能attach同一个Entity吗?

楼主可以尝试多理解一些entity和sceneNode的关系,billwillman的做法很对,这样两个entity会共享同一块vb.
如果要两个Entity有不同行为,可以对Mesh进行clone
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 17:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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