Ogre笔记-Ogre基本调用结构

1. 首层Ogre::Root Create

使用之初,首先需要创建Ogre::Root

Ogre::Root m_pRoot = new Ogre::Root("plugins.cfg");

 

2.基于Ogre::Root创建基础结构

a. 添加监听

// add listener
m_pRoot->addFrameListener(new MyFrameListener());

b.设置渲染驱动程序-使用Direct3d 或 OpenGL 

// set render system
m_pRoot->setRenderSystem(rSys);

 

c. 设置Ogre绑定显示窗口 

// set binding windows
m_pRoot->initialise(false);//false表示不要自动创建渲染窗口 
Ogre::NameValuePairList miscParams;
miscParams["externalWindowHandle"] = Ogre::StringConverter::toString((unsigned int)m_hWnd);//手动创建渲染窗口,将视图句柄传入使其使用单文档视图窗口
m_pWindow = m_pRoot->createRenderWindow("test",rt.Width(),rt.Height(),false,&miscParams);

d. 创建场景管理器 (后续细节的显示都通过场景管理器创建)

// create Scene Manager
m_pSceneManager = m_pRoot->createSceneManager(Ogre::ST_GENERIC,"ExampleSMInstance");//创建场景管理器

e. 刷新显示 

// render frame
m_pRoot->renderOneFrame();


 

3. 根据场景管理器创建细节

a. 创建摄像机 

// create Camera
m_pCamera = m_pSceneManager->createCamera("PlayerCam");//创建名为PlayerCam的摄像机

b. 设置灯光

// set light
m_pSceneManager->setAmbientLight(ColourValue(0.85,0.85,0.85));//设置环境光变暗

c. 设置天空

// set sky
m_pSceneManager->setSkyDome(true,"Examples/CloudySky",65);//天空穹,参数(是否启用天空穹,使用的材质脚本,天空穹的弯度:建议2~65,贴图的重复次数,与天空的距

离,在其他对象渲染前还是渲染后,默认TRUE渲染前)
//m_pSceneManager->setSkyBox(true,"Examples/SpaceSkyBox");//天空盒,巨型立方体,参数(是否启用天空穹,使用的材质脚本,与天空的距离,在其他对象渲染前还是渲染

后,默认TRUE渲染前)
// set sky plane
m_pSceneManager->setSkyPlane(false,plane,"Examples/SpaceSkyPlane");//天空面,一个平面

 

d. 创建场景节点

// create sub node
Ogre::SceneNode node1 = m_pSceneManager->getRootSceneNode()->createChildSceneNode();//创建结点

e.创建实体

// create entity
Ogre::Entity ent1 = m_pSceneManager->createEntity("Sphere","sphere.mesh");//获取实体对象,第一个参数是实体的名字,第二个参数是要导入的mesh文件

f. 创建动画

// create animation
Ogre::Animation *pAni = m_pSceneManager->createAnimation(MyAnimation,Real(5)); // 使用sceneManager来创建一个animation,同时指定动画的名字和帧的长度
// create animation state
Ogre::AnimationState as = m_pSceneManager->createAnimationState("MyAnimation");  //注意此处的名称和创建动画时的名称保持一致

 

参考程序:MFCOgre111--来源于csdn资源

 

Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu  转载请标明来源 

 

 

你可能感兴趣的:(Ogre基本调用结构)