OGRE步步惊心 - 第002天:第一个小例子

安装了 OGRE的模板之后,可以在VS里面直接通过这个向导,创建工程了

创建完,其实就可以直接运行了,不过是个绿头头,哈哈,鼠标可以挪动位置,前后箭头,可以控制大小,左右箭头也可以调整位置,

这里是模板的文件结构,BaseApplication.h,应该是整个工程的基类,OgreApp1,是从它派生出来的,Main函数在OgreApp1.cpp里面.

这里是OgreApp1.cpp的定义,里面的CreateScene是主要起作用的函数. 

注释掉模板的代码,写入如图的代码

首先需要为整个场景设置环境光,这样才可以看到要显示的内容,通过调用setAmbientLight函数并指定环境光的颜色就可以做到这些。指定的颜色由红、绿、蓝三种颜色组成,且每种色数值范围在 0 到 1 之间。将下一句添加到 createScene 中:

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

下一步创建一个 Entity ,通过调用 SceneManager 的 createEntity 方法来创建:

      Entity *ent1 = mSceneMgr->createEntity( "Robot", "robot.mesh" );

变量 mSceneMgr 是当前场景管理器的一个对象,createEntity 方法的第一个参数是为所创建的实体指定一个唯一的标识,第二个参数 "robot.mesh" 指明要使用的网格实体,"robot.mesh" 网格实体在 ExampleApplication 类中被装载。
这样,就已经创建了一个实体,但还需要创建一个场景节点来与它绑定在一起。既然每个场景管理器都有一个根节点,那我们就在根节点下创建一个场景节点。

     SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "RobotNode" );

这句代码首先调用场景管理器的 getRootSceneNode 方法来获取根节点,再使用根节点的 createChildSceneNode 方法创建一个名为 "RobotNode" 的场景节点。与实体一样,场景节点的名字也是唯一的。

最后,将实体与场景节点绑定在一起,这样机器人(Robot)就会在指定的位置被渲染:

     node1->attachObject( ent1 );

编译并运行你的程序,在屏幕上你将看到一个机器人。(这段是拷贝过来的,哈哈)

运行如下图:

 

 

 

 

 

posted @ 2012-08-29 15:15  姜大伟  阅读(244)  评论(0编辑  收藏  举报