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++语言。本文将非常easy理解。
一般的引擎都要提供一个供全局使用的类,这个类能够在不论什么地方来获取其它子系统或模块。
在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路径的错误问题。导致找不到静态链接文件。
(未完待续)