最近老师说让我们学习一下OGRE场景编辑器,网上搜索了很久,最后搜索到了Ogitor学做编辑器的方法,前提是要先编译好OGRE,于是,我就开始看网上的各种资料来学习OGRE,由于没人给予指导,都是自己一点点在网上看别人博客上总结的方法和自己的摸索总结出来的一些方法。。
首先说一下我会介绍两种办法来配置: SDK 和源码
首先申明一下: 我的环境. Win7 + VS2008 + DirectX SDK (February 2010)
一、SDK(这个不需要进行源码编译)
这个版本,主要是为那些需要用OGRE,但是不打算研究的。
学过DirectX的人都应指导SDK应怎么配置吧,就是配置lib 和 include: 但是由于OGRE中引入Bosst(这个即将引入标准库的,类似STL)的东西,所以还是需要配置一下Boost的lib和include库,不过你没必要自己去下,OGRE里面就有,下面说说详细的:
1、首先到OGRE的官网下载SDK:最新版本是1.7.2:根据自己的平台和编译器,下载合适的版本网址:http://www.ogre3d.org/download/sdk
2、首先你的机器上必须有DirectX 或者 OpenGL 这样一个图形处理的SDK:
看一下整个操作:
a、安装并配置DirectX SDK(官方建议的版本是DirectX SDK - February 2010。不同版本的DXSDK可能会造成OGRE编译失败,这个要注意。)
1、把DirectX SDK里的include文件夹添加进包含文件中
2、把DirectX SDK里的Lib\x86文件夹添加进库文件中
3、把DirectX SDK里的Utilities\Bin\x86添加进可执行文件中
这三步是在vs2008中使用的时候要配置的,如果单单只是要cmake编译OGRE的源代码的话,不需要配置的,只要装一下DirectX SDK (February 2010)就行了,cmake中Configure的时候,会自动找到里面的include和lib文件的。。
b 、安装并配置OGRE SDK 1.7
1、把OgreSDK_vc9_v1-7-2\include\OGRE添加进包含文件中
2、把OgreSDK_vc9_v1-7-2\boost_1_44添加进包含文件中(注意:由于ORGE中使用了boost不 添加这个的话就会提示少tss.hpp)
3、把OgreSDK_vc9_v1-7-2\lib\debug添加进库文件中 //这个和以往的不同
4、把OgreSDK_vc9_v1-7-2\boost_1_44\lib添加进库文件中
然后整个编译一边OGRE.sln的这个解决方案:
最后你想看里面的例子的话,就得打开SampleBrower的那个工程:调试-》开始执行(不调试)。
通过上面可以看到,SDK是很方便、很简单的,不过我使用的是用OGRE的源代码进行编译的,如下面所述的方法。
二、 通过源代码编译:
首先你得准备三样东西:
1、OGRE的源码:想编译OGRE,最起码要有OGRE的源码吧。可以去官方网站下载最新的源码包,我这里用的是1.7.2版本的,下载下来的文件叫 ogre_src_v1-7-2.exe。运行下载下来的程序,解压源码到一个目录下备用(我的目录为:E:\ogre_src_v1-7-2)。
2、下载并安装DirectX SDK,官方建议的版本是DirectX SDK - February 2010。不同版本的DXSDK可能会造成OGRE编译失败,这个要注意。
3、下载依赖包,OGRE的依赖包可以在Visual Studio Dependencies上下载到。将下载的依赖包解压到OGRE源码所在目录下,保持默认文件夹名称“Dependencies”就好。解压好的依赖包位置如下图。
4、进入刚才解压出来的依赖包Dependencies的目录下的src文件夹,打开OgreDependencies.VS2008.sln,Debug和Release各编译一次。
5、安装Boost库,这个非必须,但是建议安装上去,以提高性能和开启后台加载等一些功能。
建议的Boost库版本为1.44.0,Windows用户可以通过下载Boostpro Boost Installers安装(我下载的是:boost_1_44_setup.exe ),安装时确保选中了"Multithreaded"和"Multithreaded Debug",选择库的时候,要选上Boost Date Time 和 Boost Thread。
6、.下载并安装cmake,官方网站是:http://www.cmake.org/。(我下载的是cmake-2.8.5-win32-x86.exe)
至此,编译前的准备工作全部完成,下面进入OGRE的编译环节。
点击cmake界面左下角的Configure按钮,从图中可以看出,程序会自动找到Boost的安装路径,并把include和lib路径包含进来。
从上图中可以看出,程序会自动找到下载到的依赖包Dependencies中的include和lib。
从上图中可以看出,程序会自动找到DirectX SDK (February 2010)中的include和lib。
从上图中可以看出,程序会自动找到依赖包中OIS的include和lib。
第一次配置需要选择编译器,我们选择vs2008 32bit。
7、待第一遍配置完成后,可以看到配置选项都是红色,这时,再次点击Configure按钮,执行完成后选项变为灰色。(这一步的作用是使用OGRE默认配置来配置编译环境)
8、配置完成之后,点击Configure按钮右侧的Generate按钮生成项目。
9、执行完成后,cmake会将项目生成到之前配置的"Where to build the binaries"路径下。
10、打开"Where to build the binaries"路径,会发现cmake已经为我们生成了整个OGRE工程,打开OGRE.sln,编译即可。
附加:第7步中的:再次点击Configure按钮,执行完成后选项变为灰色,说明配置成功了,配置成功的提示如下:
Check for working C compiler using: Visual Studio 9 2008
Check for working C compiler using: Visual Studio 9 2008 -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Check for working CXX compiler using: Visual Studio 9 2008
Check for working CXX compiler using: Visual Studio 9 2008 -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Configuring OGRE 1.7.2
Check size of void*
Check size of void* - done
Search path: E:/ogre_src_v1-7-2/build/Dependencies;E:/ogre_src_v1-7-2/Dependencies;E:/ogre_src_v1-7-2/build/../Dependencies;E:/ogre_src_v1-7-2/../Dependencies
Looking for ZLIB...
Found ZLIB: optimized;E:/ogre_src_v1-7-2/Dependencies/lib/release/zlib.lib;debug;E:/ogre_src_v1-7-2/Dependencies/lib/debug/zlibd.lib
Looking for ZZip...
Found ZZip: optimized;E:/ogre_src_v1-7-2/Dependencies/lib/release/zziplib.lib;debug;E:/ogre_src_v1-7-2/Dependencies/lib/debug/zziplibd.lib
Looking for FreeImage...
Found FreeImage: optimized;E:/ogre_src_v1-7-2/Dependencies/lib/release/FreeImage.lib;debug;E:/ogre_src_v1-7-2/Dependencies/lib/debug/FreeImaged.lib
Looking for FREETYPE...
CMAKE_PREFIX_PATH: E:/ogre_src_v1-7-2/build/Dependencies;E:/ogre_src_v1-7-2/Dependencies;E:/ogre_src_v1-7-2/build/../Dependencies;E:/ogre_src_v1-7-2/../Dependencies
Found FREETYPE: optimized;E:/ogre_src_v1-7-2/Dependencies/lib/release/freetype2311.lib;debug;E:/ogre_src_v1-7-2/Dependencies/lib/debug/freetype2311_D.lib
Found OpenGL: opengl32
Looking for DirectX...
DirectX_PREFIX_PATH changed.
Found DirectX: C:/Program Files/Microsoft DirectX SDK (February 2010)/Lib/x86/d3d9.lib
DX lib dir: C:/Program Files/Microsoft DirectX SDK (February 2010)/Lib/x86
DX lib dir: C:/Program Files/Microsoft DirectX SDK (February 2010)/Lib/x86
Looking for Cg...
Cg_PREFIX_PATH changed.
Found Cg: optimized;E:/ogre_src_v1-7-2/Dependencies/lib/release/cg.lib;debug;E:/ogre_src_v1-7-2/Dependencies/lib/debug/cg.lib
Looking for POCO...
Could not locate POCO
Looking for TBB...
Could not locate TBB
Looking for OIS...
OIS_PREFIX_PATH changed.
Found OIS: optimized;E:/ogre_src_v1-7-2/Dependencies/lib/release/OIS.lib;debug;E:/ogre_src_v1-7-2/Dependencies/lib/debug/OIS_d.lib
Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
Looking for CppUnit...
Could not locate CppUnit
-----------------------------------------------------------------------------
-- The following external packages were located on your system.
-- This installation will have the extra features provided by these packages.
+ zlib
+ zziplib
+ freeimage
+ freetype
+ OpenGL
+ OpenGL ES
+ DirectX
+ cg
+ boost
+ boost-thread
+ boost-date_time
+ OIS
-----------------------------------------------------------------------------
-- The following OPTIONAL packages could NOT be located on your system.
-- Consider installing them to enable more features from this software.
+ POCO: POCO framework <http://pocoproject.org/>
+ tbb: Threading Building Blocks <http://www.threadingbuildingblocks.org/>
+ Doxygen: Tool for building API documentation <http://doxygen.org>
+ CppUnit: Library for performing unit tests <http://cppunit.sourceforge.net>
-----------------------------------------------------------------------------
----------------------------------------------------------------------------
FEATURE SUMMARY
----------------------------------------------------------------------------
Building components:
+ Paging
+ Property
+ Terrain
+ RTShader System
+ RTShader System Core Shaders
+ RTShader System Extensions Shaders
Building plugins:
+ BSP scene manager
+ Cg program manager
+ Octree scene manager
+ Portal connected zone scene manager
+ Particle FX
Building rendersystems:
+ Direct3D 9
+ OpenGL
Building executables:
+ Samples
+ Tools
Building core features:
+ DDS image codec
+ FreeImage codec
+ ZIP archives
Build type: dynamic
Threading support: background (boost)
Use double precision: disabled
Allocator type: nedmalloc (pooling)
STL containers use allocator: enabled
Strings use allocator: disabled
Memory tracker (debug): disabled
Memory tracker (release): disabled
Use new script compilers: enabled
Use Boost: enabled
----------------------------------------------------------------------------
Configuring done