英语水平有限,欢迎大家批评指正
本文并没有将原文全部翻译,只是将其中的一些知识点翻译总结了一下,想要查看详细讲解的话,可以到原文处看一下,附上英文原文地址:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Basic+Tutorial+1&structure=Tutorials
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轴作为垂直轴。
Ogre使用Vector类来代表位置和方向,Vector分为2、3、4维,其中Vector3时最常用的。