读书人

Ogre学习课程:Ogre第一个程序

发布时间: 2013-04-12 18:33:12 作者: rapoo

Ogre学习教程:Ogre第一个程序

1. 已经安装了Ogre工程向导,VS2010 新建项目就可以看得OGRE的工程模版了,建立一个空项目,由于安装了Orge工程助手,所以免去了麻烦的配置过程(安装Orge工程助手步骤可以参考 Ogre1.8.1+VS2010环境配置):

Ogre学习课程:Ogre第一个程序


2. 首先在项目中建立一个OgreDemo1.c和OgreDemo1.h文件。分别填入如下代码:

OgreDemo1.h:

#include "OgreDemo1.h"#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32#define WIN32_LEAN_AND_MEAN#include "windows.h"INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )#elseint main(int argc, char **argv)#endif{// Create application objectOgreDemo1 app;try {app.go();} catch( Exception& e ) {#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 MessageBoxA( NULL, e.getFullDescription().c_str(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);#elsefprintf(stderr, "An exception has occurred: %s ",e.getFullDescription().c_str());#endif}return 0;}

编译,运行,会出现一个黑窗口,啥都木有!


3. 往窗口添加一个对象

直接在OgreDemo1类的createScene方法中来实现,

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



例子很简单,代码页不多,就4行。我们还是一步一步来分析吧。

首先我们上一个项目中的OgreDemo1类继承自ExampleApplication类,我们之所以什么都没有做就能创建一个窗口,就是因为ExampleApplication为我们实现了。

首先我们打开ExampleApplication类,可以看到包含了如下几个成员变量(加入少许注释)

//ogre的程序"根"任何ogre程序都会有改对象Root *mRoot;//摄像机镜头Camera* mCamera;//场景管理器SceneManager* mSceneMgr;//对于每一帧进行处理的类ExampleFrameListener* mFrameListener;//渲染窗口RenderWindow* mWindow;//资源文件的路径字符串Ogre::String mResourcePath;

这里的ExampleFrameListener类,如果你暂时还不清楚是做什么的,不要紧,后面我们慢慢介绍。

知道了这些成员变量,我们在返回OgreDemo1.c文件中看看入口函数WinMain中是如何书写的呢?很简单就一句话:


文件如下:

Render System=Direct3D9 Rendering Subsystem[Direct3D9 Rendering Subsystem]Allow NVPerfHUD=NoAnti aliasing=NoneFloating-point mode=FastestFull Screen=NoRendering Device=Mobile Intel(R) 945 Express Chipset FamilyVSync=NoVideo Mode=800 x 600 @ 32-bit coloursRGB Gamma Conversion=No[OpenGL Rendering Subsystem]Colour Depth=32Display Frequency=N/AFSAA=0Full Screen=NoRTT Preferred Mode=FBOVSync=NoVideo Mode=1024 x 768sRGB Gamma Conversion=No

相信这里就不用多解释,大家都明白了。



4. Reference:

http://yarin.iteye.com/blog/561474

http://yarin.iteye.com/blog/561477

http://blog.163.com/cp7618@yeah/blog/static/70234777201141143014386/






读书人网 >其他相关

热点推荐