alligetor

To hell and back

 

OGRE笔记 1

从头开始学,部分代码取自wiki

wiki上给的第一个Tutorial 是Beginner Tutorial 1: The SceneNode, Entity, and SceneManager constru

开始的框架什么也没有,不过给了一个TutorialApplication 类的“空壳”而已
#include "ExampleApplication.h"

class TutorialApplication : public ExampleApplication
{
protected:
public:
    TutorialApplication()
    
{
    }


    
~TutorialApplication() 
    
{
    }

protected:
    
void createScene(void)
    
{
    }

}
;

然后大概就是先设置环境光,用setAmbientLight函数,wiki上给的方法是
mSceneMgr->setAmbientLight( ColourValue( 111 ) );
注意里面ColorValue里面的元素是由0到1的。

然后就可以创建“实体(Entity)”了,wiki的方法是
Entity *ent1 = mSceneMgr->createEntity( "Robot""robot.mesh" );
注意的是我们几乎从来不在程序中直接创建一个entiry,场景中的entity的创建和管理一般是由scenemanager完成的,所以调用上面这个函数创建实体
mSceneMgr是在ExampleApplication类中已经定义好了的(以后笔记中会专门介绍这个类)。createEntity这个函数有两个参数,第一个是实体的“名字”每个实体都要有一个“独一无二”的名字,重名是不允许的。第二个参数是这个实体使用的mesh文件,在ExampleApplication中已经加载了程序的资源配置信息,这里是resources.cfg,可以自己修改这个文件。

实体创建之后就要把它和一个SceneNode,每个SceneManager都有一个RootSceneNode,我们可以把这个实体当作一个RootSceneNode的ChildSceneNode加入其中

首先创建一个子节点(ChildSceneNode)
SceneNode *node1 = mSceneMgr->getRootSceneNode()->createChildSceneNode( "RobotNode" );
这段代码用getRootSceneNode找到mSceneMgr的RootSceneNode,然后再创建它的子节点(ChildSceneNode),参数也是“名字”而且独一无二

接下来就是把刚才的实体和这个子节点结合
node1->attachObject( ent1 );

然后就可以编译并且运行了

posted on 2007-11-28 10:53 alligetor 阅读(222) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜