首页 > 代码库 > OGRE HelloWorld——MiniSample
OGRE HelloWorld——MiniSample
OGRE HelloWorld——MiniSample
By microsoftxiao
参考链接1:http://blog.csdn.net/zhuxiaoyang2000/article/details/6324080
参考链接2:http://blog.csdn.net/zhanghua1816/article/details/8373703
准备
需要安装 OGRE SDK 1.9
操作系统 Window 7
IDE Visual Studio 2008 Professional
本文目的,写一个精简的OGRE程序。然后再逐步为其添加功能。
OGRE提供的例子很丰富,但对于新手来说还是不太直观。但如果你熟悉Windows程序设计、C/C++语言,本文将很容易理解。
一般的引擎都要提供一个供全局使用的类,这个类可以在任何地方来获取其他子系统或模块。在OGRE就通过Ogre::Root来定义。
程序首先要加载配置文件plugins.cfg, 默认的叫plugins_d.cfg, 它是一个文本文件,用于配置经常要改动的各种参数,如是否全屏,用Direct3D9渲染还是
Direct3D 11或OpenGL等。它的内容如下:
# Defines plugins to load
# Define plugin folder
PluginFolder=.
# Define plugins
Plugin=RenderSystem_Direct3D9_d
Plugin=RenderSystem_Direct3D11_d
Plugin=RenderSystem_GL_d
# Plugin=RenderSystem_GL3Plus_d
# Plugin=RenderSystem_GLES_d
# Plugin=RenderSystem_GLES2_d
Plugin=Plugin_ParticleFX_d
Plugin=Plugin_BSPSceneManager_d
Plugin=Plugin_CgProgramManager_d
Plugin=Plugin_PCZSceneManager_d
Plugin=Plugin_OctreeZone_d
Plugin=Plugin_OctreeSceneManager_d
代码如下:
#include "Ogre.h" #include <iostream> using namespace std; int main() { cout<<"Hello World"<<endl; Ogre::Root *tRoot = new Ogre::Root("plugins.cfg"); if(tRoot) { //显示配置对话框,选择RenderSystem tRoot->showConfigDialog(); //创建窗口并执行一系列初始化 tRoot->initialise(true, "miniSample OGRE App"); //消息循环 tRoot->startRendering(); } //销毁root if(tRoot) { OGRE_DELETE tRoot; tRoot = NULL; } return 0; }
这个程序没什么功能,只是利用Ogre::Root创建了一个窗口,由于没有Listener,还必须使用任务管理器杀死进程。
程序运行如图:
FullScreen是切换全屏选项。
如果你像我的显卡不支持Direct3D 11 Rendering Subsystem, 那么你可以用Direct3D9来渲染。
也可以用Direct3D 11的software, 软件模拟方式渲染。
如果你的程序有问题,请设置环境变量:
右键我的电脑à属性à高级à环境变量,新建用户变量ogre_home,环境变量不区分大小写。
另外在VS 2008 IDE的工具à选项à项目和解决方案àVC++目录,如下图。
D:\develop\OgreSDK_vc9_v1-9-0\bin\debug是OGRE调试版二进制文件,里面有默认的配置文件。文件名是plugins_d.cfg。
ogre_home环境变量可以用来方便包含相关的头文件。如果找不到OgreOverlaySystem.h等,你就可以在项目文件的项目属性中的
配置属性àC/C++à常规à附加包含目录下包含相对的路径。
其他可能遇到的错误:
1. OgreMain_d.lib没找到
2.无法打开包括文件 Ogre.h, 这类错误多数是include路径的配置错误问题,导致找不到被引用的文件。
3.无法打开Libboost_thread-vc90-mt-gd-1_55.lib,这类错误多数是lib路径的错误问题,导致找不到静态链接文件。
(未完待续)