QTwithOGRE
为初学者准备的
孙浩惠
sunhaohui.bupt@gmail.com
新浪微博 cody_bupt
目 录
第一章 OGRE 编译及使用......................................................................................................................... 1
1.1 OGRE 简介及下载 ............................................................................................................................ 1
1.1.1 OGRE 简介 ................................................................................................................ 1
1.1.2 OGRE 源码的下载 ............................................................................................ 1
1.1.3 DirectX SDK ...................................................................................................... 2
1.2 OGRE 的 CMAKE 编译.................................................................................................................. 2
1.2.1 CMAKE 简介及安装 ......................................................................................... 2
1.2.2 使用 cmake 进行 OGRE 的编译 ...................................................................... 2
1.3 编译之后的配置 ............................................................................................................................... 6
1.3.1 文件目录的结构 ............................................................................................... 6
1.3.2 环境变量的设置 ............................................................................................... 7
1.3.3 Ogre app wizard 快速部署 OGRE 程序 ........................................................... 8
第二章 QT 的安装和编译 .......................................................................................................................... 11
2.1 QT 简介及下载 ................................................................................................................................. 11
2.2 编译 QT ............................................................................................................................................... 12
2.2.1 Qt configuration ................................................................................................ 12
2.2.2 Qt 编译和安装 ................................................................................................ 12
2.3 QT 的使用 ........................................................................................................................................... 12
2.4 VS 中导入*.PRO 文件 ...................................................................................................................... 13
第三章 OGRE 与 QT 的结合 .................................................................................................................. 15
3.1 环境的配置 ....................................................................................................................................... 15
3.1.1 General 和 Debugging .................................................................................... 15
3.1.2 C/C++ ............................................................................................................... 15
3.1.3 Linker................................................................................................................ 15
3.1.4 Build Events ..................................................................................................... 16
3.2 代码 ..................................................................................................................................................... 16
3.2.1 OgreView 类 ..................................................................................................... 16
3.2.2 OgreView 类的使用......................................................................................... 22
QTwithOGRE Document
第一章 OGRE 编译及使用
1.1 OGRE 简介及下载
1.1.1 OGRE 简介
OGRE 是由开源爱好者维护的开源图形引擎。正如他的名字(Object-based Graphics
Rendering Engine)所言,OGRE 只是一个渲染器。他所作的工作只是绘制部分,不包括
游戏所应该有的脚本、AI、碰撞检测等。但是有很多家游戏公司使用 OGRE 为基础开发
自己的游戏引擎。OGRE 在中国是非常火的一款开源渲染器。
OGRE 是个开源引擎,所以使用他的第一步就是下载源代码和编译。
1.1.2 OGRE 源码的下载
OGRE 的源码分为两个部分,第一个部分也是最重要的部分——OGRE 核心源代码。
下载地址为:
http://cdnetworks-kr-1.dl.sourceforge.net/project/ogre/ogre/1.7/ogre_src_v1-7-3.exe
从这个网址上会下载下来一个后缀名为 ogre_src_v1-73.exe 的可执行文件。这是一
个自解压包,在运行后要选择源码的解压路径。这个路径没有特殊的要求,只要路径中
不要有中文或者空格就可以了。下划线也尽量不要出现。
源码还有第二个部分是编译 OGRE 所使用到的第三方开发包,比如说读取 Zip 压缩
包所使用的 ziplib 等。这些开发包可以从 OGRE 的官网上下载,但是需要根据自己电脑
上的 Visual Studio 的版本来选择。打开如下的网址,
http://www.ogre3d.org/download/source,选择如下图的选项。
图 1- 1 第三包的选择
下载完成解压之后,会有一个名为 Dependencies 的文件夹,将这个文件夹剪切到
ogre_src_v1-7-3 文件夹下,与 OgreMain 在同一个文件夹下。在 Dependencies\src 有各个
版本的 visual studio 工程文件。打开与自己 visual studio 版本相应的工程文件。在菜单栏
上选择 Build->Build Solution,或者是按"F7"。在编译的时候需要编译 Debug 和 Release
两个版本。如下图所示:
图 1- 2 编译 Release 版本
图 1- 3 编译 Debug 版本
1
QTwithOGRE Document
这两个版本的都编译完成之后,才能保证以后的 OGRE 项目可以生成 Debug 和
Release 两个版本。Debug 版本生成的程序因为加入了调试信息,所以运行较慢。Release
版本在编译的时候做了相关的优化,所以程序的运行速度更快。一般调试的时候使用
Debug 版本,没有问题了可以生成 Release 版本。有时候 Release 版本可以比 Debug 版
本快 10 倍。但是 Release 版本的单步调试无法得到局部变量的值,从而在调试上有诸多
的不便。
理论上还应该编译一个 Boost 的库,在这里我还没有编译,不过没有关系。有兴趣
的同学可以自己编译一下 boost 库。
讲到这里将源码解压,把 Dependencies 放入相应文件夹下,并完成 Dependencies
的编译之后,就可以进入 OGRE 库的编译阶段了。
1.1.3 DirectX SDK
为了更好的在 windows 平台上使用 OGRE,还需要安装 DirectX sdk。该 SDK 可以
从微软官网上下载,正常安装就可以了。网址如下:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812
1.2 OGRE 的 CMAKE 编译
1.2.1 CMAKE 简介及安装
CMAKE 类似与 linux 系统上的 makefile 编译系统。他是一款跨平台的软件,可以
根据 CMAKELIST 生成相关系统下的工程文件。可以生成 Visual Studio 2005~2010 的
工程文件,也可以生成 Linux 系统上的 makefile。
CMAKE 的下载地址如下所示:
http://www.cmake.org/cmake/resources/software.html
在打开的界面中选择相关操作系统的可执行文件。如果使用的是 windows 平台则做
如下图所示的选择:
图 1- 4 cmake 在 windows 平台上的下载
文件直接运行就可以完成安装的过程。
1.2.2 使用 cmake 进行 OGRE 的编译
打开 cmake_gui 可以看到如下图的界面:
2
QTwithOGRE Document
图 1- 5 cmake 的配置
在第一行中是 OGRE 解压后的地址。在第一行的文件夹下可以看到如下的目录结构:
图 1- 6 所选择的文件目录
第二栏所输入的是你所希望 OGRE 的安装的地址。刚才的地址是所有的源代码,在
编译之后会生成很多动态连接库(*.dll),静态库(*.lib)和例子的可执行文件(*.exe)。生成
的这些库和执行文件将会存放在第二栏所写的地址中。同时在使用 OGRE 进行开发的时
候,也使用的是第二栏地址中生成的库等信息。点击 Configue,cmake 会弹出一个对话
框让你选择生成 vs 工程文件,如下图所示。
3
QTwithOGRE Document
图 1- 7 选择相关的 Visual Studio 版本
如图中所示 visual studio 对应的版本号是 10,以此类推 vs 2008 的版本号是 9,等等。
如果没有出现红色的错误信息。就可以点击 Generate 按钮生成相应的 vs 工程文件。只
需要一会就可以生成相应的工程文件。生成之后,定向到第二栏所输入的路径。以后把
第二栏所输入的路径定义为 OGRE 生成路径。之后的 OGRE 生成路径就是指第二栏输
入的路径。在 OGRE 生成路径中打开 OGRE.sln 文件。
注意:如果 OGRE 生成路径在 c:\programfiles 路径下,打开 vs 的时候要以管理员身
份打开。如下图所示:
图 1- 8 以管理员权限打开
4
QTwithOGRE Document
如果安装在了其他的路径,则不需要这个操作。当打开*.sln 文件之后可以看到启动
项是 ALL_BUILD 如下图所示:
图 1- 9 ALL_BUILD 为启动项
一般生成之后都是这样的设置,直接点击运行的按钮就可以启动编译的过程了。和
上面编译第三方库的时候一样,须生成 Debug 和 release 两个版本。编译的时间大约有
半个小时左右。请耐心等待。如果之前的操作都没有出问题的话,OGRE 可以被正确的
编译。编译之后还需要 Install。这个步骤需要将 INSTALL 工程激活。激活的方法是在
INSTALL 的上方右键选择 set as setup project。如下图所示:
图 1- 10 设置 INSTALL 为启动项目
设置完成之后点击运行的绿色小三角按钮。这一步的操作其实是执行了如下的操作:
"D:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -DBUILD_TYPE=$(Configuration)
-P cmake_install.cmake
这一步就是要把生成的动态静态库复制到 OGRE 生成路径下的 SDK 文件夹下。这
5
QTwithOGRE Document
一步操作可以手动执行。自己把 Include 和 lib 复制到相关路径下即可。什么是相关路径
呢?这个问题留到下一小节来讲。
如果编译结束之后,可通过运行 bin 目录下的 sampleBrowser(_d).exe 来检测编译是
否成功。如果可出现如下图所示的画面,则说明编译成功了!
图 1- 11 编译成功后的画面
1.3 编译之后的配置
1.3.1 文件目录的结构
完成 OGRE 的编译之后,整个 OGRE 生成路径会变得混乱不堪。而且 INSTALL 步
骤之后,每个人的电脑会有所不同。但是遵循的原则是一样的。那就是必须有着如下的
目录结构。在编译之后需要设置一个环境变量:OGRE_HOME --- OGRE 生成路径。这
个 OGRE 生成路径必须有着如下几个文件夹。
1. lib 文件夹:该文件夹有着 debug 和 release 两个文件夹,每个文件夹中有生成好
的*.lib 文件在 debug 文件夹中的*.lib 文件名称是***_d.lib。而在 release 文件夹
中的文件没有"_d"的修饰。
2. bin 文件夹:该文件夹目录下有 debug 和 release 两个文件夹,每个文件夹中的
文件名应该和 lib 文件夹中的一致,只是后缀名是 dll。同时也多了几个 exe 文件。
这个 exe 包括 mesh 文件转换器和 sampleBrowse。如果运行 sampleBrowse 可以
成功运行,这说明整个编译是成功的。也说明了 dll 可以正确链接。
3. include 文件夹:该文件夹包括 OGRE 和 OIS 这两个文件夹,以后编程使用的*.h
文件就来自与该文件夹。
我的目录结构如图所示:
6