OGRE基础教程 一 SceneManager、SceneNode、Entity
2012-11-05 18:56
447 查看
英语水平有限,欢迎大家批评指正
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
[b]本文并没有将原文全部翻译,只是将其中的一些知识点翻译总结了一下,想要查看详细讲解的话,可以到原文处看一下,附上英文原文地址:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Basic+Tutorial+1&structure=Tutorials[/b]
1.SceneManager
SceneManager管理屏幕上出现的所有东西,当对象(Objects)被加入场景中时,SceneManager记录他们的位置。当你创建Camera(摄像机)、plane(平面)、billboard(广告牌)、light(灯光)等时,都由SceneManager来记录他们。
SceneManager有多种类型,比如渲染terrain(地面)、BSP、Maps等的SceneManager。
2.Entity
Entity是可以渲染到场景中的对象的一种类型。可以认为Entity是有3D mesh(网格)代表的任何东西。一个Robot、一条鱼、character行走的terrain都是Entity,但是像light、Billboard、particles(粒子)、camera等就不是Entity了。
有一点要注意,Ogre将可渲染对象的位置和方向分开,这意味着你不能直接把一个Entity加入到场景中。要使Entity依附于一个SceneNode对象上,而SceneNode包含了位置和方向信息。
3.SceneNode
SceneNode可以记录附加到他的所有对象的位置和方向信息,只有将你创建的Entity附加到一个SceneNode才能渲染到场景中。另外,SceneNode并不是显示到屏幕上的一个对象,只有创建SceneNode并附加一个Entity才能显示出来。
SceneNode可以附加任意多的对象。比如有一个角色于屏幕上走动,你想在他周围生成一个light。要做出来,首先要创建一个SceneNode,然后为角色创建一个Entity并附加到这个SceneNode上,然后再创建一个light对象并且同样附加到这个SceneNode上,SceneNode也可以附加到其他的SceneNode上。
下例是Ogre中添加对象的代码:
4.Coordinates and Vectors
Ogre使用X轴和Z轴作为水平面,Y轴作为垂直轴。
![](http://img.my.csdn.net/uploads/201211/05/1352113152_3762.png)
Ogre使用Vector类来代表位置和方向,Vector分为2、3、4维,其中Vector3时最常用的。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
[b]本文并没有将原文全部翻译,只是将其中的一些知识点翻译总结了一下,想要查看详细讲解的话,可以到原文处看一下,附上英文原文地址:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Basic+Tutorial+1&structure=Tutorials[/b]
1.SceneManager
SceneManager管理屏幕上出现的所有东西,当对象(Objects)被加入场景中时,SceneManager记录他们的位置。当你创建Camera(摄像机)、plane(平面)、billboard(广告牌)、light(灯光)等时,都由SceneManager来记录他们。
SceneManager有多种类型,比如渲染terrain(地面)、BSP、Maps等的SceneManager。
2.Entity
Entity是可以渲染到场景中的对象的一种类型。可以认为Entity是有3D mesh(网格)代表的任何东西。一个Robot、一条鱼、character行走的terrain都是Entity,但是像light、Billboard、particles(粒子)、camera等就不是Entity了。
有一点要注意,Ogre将可渲染对象的位置和方向分开,这意味着你不能直接把一个Entity加入到场景中。要使Entity依附于一个SceneNode对象上,而SceneNode包含了位置和方向信息。
3.SceneNode
SceneNode可以记录附加到他的所有对象的位置和方向信息,只有将你创建的Entity附加到一个SceneNode才能渲染到场景中。另外,SceneNode并不是显示到屏幕上的一个对象,只有创建SceneNode并附加一个Entity才能显示出来。
SceneNode可以附加任意多的对象。比如有一个角色于屏幕上走动,你想在他周围生成一个light。要做出来,首先要创建一个SceneNode,然后为角色创建一个Entity并附加到这个SceneNode上,然后再创建一个light对象并且同样附加到这个SceneNode上,SceneNode也可以附加到其他的SceneNode上。
下例是Ogre中添加对象的代码:
Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "ogrehead.mesh");
Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("HeadNode");
headNode->attachObject(ogreHead);
其结果如下图:
4.Coordinates and Vectors
Ogre使用X轴和Z轴作为水平面,Y轴作为垂直轴。
![](http://img.my.csdn.net/uploads/201211/05/1352113152_3762.png)
Ogre使用Vector类来代表位置和方向,Vector分为2、3、4维,其中Vector3时最常用的。
相关文章推荐
- OGRE教程(一):SceneNode, Entity, SceneManager
- OGRE教程(一):SceneNode, Entity, SceneManager
- OGRE教程:SceneNode, Entity, SceneManager
- OGRE基础教程一:OGRE最基本的组成结构:SceneManager,SceneNode和Entity objects
- OGRE教程(一):SceneNode, Entity, SceneManager
- 【转载】Ogre:Beginner Tutorial 1: SceneNode, Entity,和SceneManager 结构
- [OGRE]基础教程来二发:来谈一谈坐标系统
- [OGRE]基础教程来四发:来谈一谈地形系统
- Ogre3D基础教程三
- Ogre游戏开发 第一课 SceneManager,SceneNode和 Entity Objects
- [OGRE]基础教程来六发:来谈一谈帧的监听
- [OGRE]基础教程来四发:来谈一谈地形系统
- [OGRE]基础教程来七发:来谈一谈缓冲绑定
- OGRE 引擎官方基础教程 (一)
- Ogre基础教程4:监听器类与无缓冲输入处理
- Ogre基础教程7:CEGUI 与 Ogre(未完成)
- OGRE基础教程1(上)
- Axiom3D学习日记 2.介绍SceneManager,SceneNode,Entity
- OGRE CG教程 (一):OGRE CG 基础
- [OGRE]基础教程来七发:来谈一谈缓冲绑定