OGRE Homepage
:
http://www.ogre3d.org/
Basic Tutorial 1主要讲了几个OGRE中的基本概念:
1. SceneManager
:所有屏幕上可见的东西都由
SceneManager
来管理;有多种类型的
SceneManager
,分别用来渲染
Terrain
、
BSP
等等。
2. Entity
:初步的理解一个
Entity
代表一个
Mesh
(可以含有动画),
Light
,
Camera
,
Particle
,
Billboard
不用
Entity
表示。
Entity
不能直接加到场景中,必须先
attach
到一个
SceneNode
上,
SceneNode
管理位置和方向。
3. SceneNode
:
SceneNode
管理位置和方向;需要注意子节点的是在父节点的空间中;一个
SceneNode
可以管理多个对象。
4. OGRE
中的
Entity
和
SceneNode
都必须指定全局唯一的名称。
Basic Tutorial 2
主要是讲
OGRE
中的
Light
和
Shadow
的设置
1. 要开启阴影:首先要调用SceneManager:: setShadowTechnique(),然后对于需要开启的Entity调用Entity:: setCastShadows()。
2. 灯光和摄像机都需要由SceneManager来创建,分别是SceneManager::createLight()和SceneManager::createCamera()。
Basic Tutorial 3
主要讲
Terrain
场景,
Sky
和
Fog
1. 为了处理Terrain场景,首先要选择相应类型的SceneManager,这里选择了“ST_EXTERIOR_CLOSE”类型。这个操作是通过Root::createSceneManager()完成的。此操作创建并返回了一个TerrainSceneManager指针,同时创建了一个HeightmapTerrainPageSource对象。
2. 加载地形是通过:mSceneMgr->setWorldGeometry( "terrain.cfg" );语句来完成的。
3. 天空是通过SceneManager::setSkyBox()等函数完成的;
4. Fog
是通过
SceneManager::setFog()
完成。
Basic Tutorial 4
引入了
FrameListener
的概念
对于
FrameListener
的初步理解:
OGRE
在初始化完成之后,调用
Root::startRendering()
就启动了渲染循环。
FrameListener
是为了给应用程序处理各种事件的机会,最典型的就是
frameStarted()
和
frameEnded()
。
此教程的
TutorialFrameListener
从
ExampleFrameListener
派生,后者又从
FrameListener
和
KeyListener
派生,所以它可以处理按键事件。
Basic Tutorial 5
,
6
没有仔细阅读。
以上几个教程都使用“
ogrenew/Samples/Common
”目录下的
ExampleApplication
的简单框架,有必要对它做一下了解。