安装了 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 );
编译并运行你的程序,在屏幕上你将看到一个机器人。(这段是拷贝过来的,哈哈)
运行如下图: