OGRE初学者引导.docx
《OGRE初学者引导.docx》由会员分享,可在线阅读,更多相关《OGRE初学者引导.docx(17页珍藏版)》请在冰豆网上搜索。
OGRE初学者引导
OGRE初学者引导
1初学者如何开始OGRE
欢迎进入OGRE的世界,你在看这篇文章说明你在开始学习OGRE了,希望这篇文件对你有用。
这篇文件是假设你有下面的知识的情况下,如C++编程技巧,基本的操作系统使用的知识和一些关于3D方面的知识。
我在这篇文章中,只是描述我知道的东西,对于其他的东西,请在OGRE论坛中讨论。
对于高级用户,这篇文件对你也许不适合,因为,这是我第一次使用OGRE的一些想法。
那时,我的C++不是很好,对VS也不是很了解,甚至不知道3D编程。
(注意:
这篇文章是关于VC7)
首先,我们需要到OGRE下载页面下载“stablereleases(完整版)”,下载后,将他解压到你建立的目录下(如:
F:
/OGRE)。
文件将自动生成到OGRENEW目录下。
这是必须的,如果你乱改了目录,也许会发生一些错误。
如果你是使用WINDOWS,请到OGRE下载页面下载"extras"版本。
将他解压到你建立的目录下,如:
F:
/OGRE/OGRENEW。
这些文件适合LINUX平台,并不包括对WINDOWS的支持。
如果你在WINDOWS,LINUX下使用GCC2.9X,你将需要下载更多的东西,如STLPORT。
如果你使用的是GCC3.0,你将不需要做什么。
2何时需要STLPORT,为什么?
如果你使用的是VC6/7,你将需要STLPORT。
因为STL在VC6/7中执行很慢,并有许多错误。
OGRE是使用STL通过DLL使用MSSTL;这将引起程序崩溃。
OGRE是非常面向DLL的,因此MSSTL不适合。
而STLPORT很适合,他运行也比MSSTL快。
注意,在VS2003,2005中,不需要STLPORT。
如果你使用的是GCC2.9X,你将需要STL;但在GCC3.0中,不需要,他的STL得到了更新。
STLPORT是标准模版函数库的“beefedup"版本,包含许多你所需要的基本的函数。
关于STLPORT的使用和安装在下面介绍。
2.1如何安装STLPORT?
*从www.stlport.org下载最新的STLPORT(4.6.2),并解压他。
*打开一个命令行程序(注意:
在WINDOWSNT/2000/XP中,是cmd.exe而不是),并改变他的路径STLPORT-4.6.2/SRC
*如果你使用VC,请确定‘VCVARS32。
BAT’是否运行在devstudio/vc6/binor
注意:
这些命令必须在在同一行执行。
VCVARS32。
BAT只设置运行中的SHELL的环境,因此,如果你得到关于NMAKE的错误,请确定VCVARS32。
BAT的版本是否和SHELL的版本相同。
*如果你使用VC6
*键入‘nmake-fvc6.makcleanall'
*键入’nmake-fvc6.makinstall'
*如果你使用的是VCNET
*键入‘nmake-fvc7.makcleanall'
*键入’nmake-fvc7.makinstall'
注意:
如果你觉得麻烦的话,你可以添加NMAKE。
EXE的路径到你的路径变量中。
如果你这样做了,返回了”NOTE:
“的错误。
比如,如下的错误:
"..\\stlport\ctime(25):
fatalerrorC1083:
Cannotopenincludefile:
'../include/ctime':
Nosuchfileordirectory".发生了这样的错误,你可以把VCVARS32。
BAT拷贝到你的命令行程序相同的路径下,然后执行。
如果你有其他的问题,请到OGRE的论坛中讨论。
*如果你使用VS2003
*你将不需要做任何事情
*如果你使用的是GCC2.9X
*键入‘./configure'
*键入’make'
*键入‘makeinstall'
*打开VC++,然后选择Tools/options...,将弹出一个对话框
*在VC6中电击'Directories'选行,在.NET中,是在Project/vc++下面。
*确定STLPORT的路径在路径列表的最上面,他必须在最上面。
*(比如,他的头文件的路径可以如下:
\STLport-4.6.2\stlport\)
*(比如,他的库文件的路径可以如下:
\STLport-4.6.2\lib\)
*保存并关闭
*恭喜,STLPORT已经设置好了。
3VisualStudio.NET(VC7)
我们现在可以用OGRE开发了,在开发之前,请安装DXSDK,然后建立OGRE引擎和例子。
他在OGRENEW/OGRE。
DSW(VC6)或OGRENEW/OGRE。
SLN(VC7)下,电击“BUILDALL”。
等待大约10-15分钟后,引擎,plugins,工具和例子将建立。
如果你想运行这些例子,切换到ogrenew\Samples\Common\bin\Debug(在这里,我们使用的是DEBUG模式,如果你是RELEASE模式,就切换到RELEASE)。
先将OGREMAIN。
DLL(ogrenew/ogremain/lib/{debug|release})和其他的支持函数拷贝到ogremain/samples/common/bin/debug下,然后就可以运行例子了。
OGRE实际上是一个应用程序类库,他允许你很快速的开发你需要的应用程序。
因为,他提供了你开发程序的3D基础,特别适合建立应用程序。
我们首先建立一个"EmptyProject",然后进行下面的设置:
*右击项目名,选择”Properties".
*添加theogrenew\OgreMain\include和ogrenew\Samples\Common\include的路径到"additionalincludes"
*添加ogrenew\OgreMain\lib\(Debug|Release)到"librarysearchpaths"
*添加OgreMain.lib到"AdditionalDependencies"
*在C++/CodeGeneration模式下,选择"RuntimeLibrary"to"Multi-threadedDebugDLL"(fordebug-modeapps)和"Multi-threadedDLL"(Forrelease-modeapps).
你也可以把"OutputDirectory"和"WorkingDirectory"(underDebugging)选上。
他将把文件放到和已经运行的OGREDLL相同目录下。
如果你不这样做,你将拷贝许多OGREDLL到outputdirectory下。
设置好后,我们就开始了一个main.cpp的文件。
4。
GCC3.3/3.4
如果你使用LINUX或MingWforwindows,那么下面的内容对你有用,先到OGRE下载LINUX版本。
然后解压:
*tarxjf./ogre*
*./bootstrap(I'vefoundnotdoingthisin1.0.0RC1causeslatererrors)
*./configure&&make
*makeinstall(youmayhavetoberoottodothis)
设置好后,你能通过./ogrenew/Samples/Common/bin访问。
设置AnjutaIDE
你可能想用IDE来便于你开发OGRE程序。
这些还在讨论中,重点如下:
*建立一个新的Generic/Terminal
*changeyourProject->ProjectOptionsConfigurationtabandLibrariessub-tabandadd:
PKG_CHECK_MODULES(ogre,[OGRE>=1.0.0])
AC_SUBST(ogre_CFLAGS)
AC_SUBST(ogre_LIBS)
*然后进入Settings->Compiler,将连接选行添加${ogre_CFLAGS}toCFLAGSand${ogre_LIBS}
*最后,到Build->Autogenerate,这将自动更新你的makeandconfig文件。
5GCC3.3/3.4DevC++
如果你想在DC中使用OGRE,请按照下面的步骤:
1)得到DC
2)得到DEVPAK(http:
//the-
3)得到OGRE相关DEVPAK(http:
//the-
4)安装DC
5)安装OgreDevPak
6)安装OgreDependencies
7)到例程目录。
例如:
C:
\Development\Dev-Cpp\MyProjects\ogrenew\the-agency\Samples\ParticleFX
然后打开。
DEV文件,如:
Sample_ParticleFX.dev
将有一个警告出现,ignore他。
如果你得到另一个警告,说明你的文件在“build"目录下。
8)电击Project->ProjectOptions->Directories,然后设置:
在"Libraries"行,设置:
..\..\OgreMain\build
..\..\..\Dependencies\build
在"Include"tab,如下:
..\..\..\OgreMain\include
..\..\..\dependencies\devil\include
..\..\..\dependencies\freetype\include
..\..\..\dependencies\zlib\include
..\..\..\Samples\Common\include
..\..\..\Samples\ParticleFX\include
9)HitRebuildAll(Ctrl+F11)-这将让Sample_ParticleFX.exe去建立一个目录,拷贝文件到C:
\Development\Dev-Cpp\MyProjects\ogrenew\Samples\Common\bin\Debug
10)将dependencies\build所有的DLL和C:
\Development\Dev-Cpp\MyProjects\ogrenew\the-agency(usetheWindowsSearchfunction)下的文件拷贝到C:
\Development\Dev-Cpp\MyProjects\ogrenew\Samples\Common\bin\Debug
11)RenamePlatformManager_SDL.dlltoOgrePlatform.dll
12)通过下面的设置修改thePlugins.cfg文件:
1。
Plugin=RenderSystem_Direct3D7
1。
Plugin=RenderSystem_Direct3D9
13)完成后,运行Sample_ParticleFX.exe
6GCC3.3Cygwin/MinGW
Usethefollowingifyoudon'twanttohavetosetupthewholeDev-C++,butwouldliketohavejustapureCygwin/MinGWenvironment.Cygwinisusedforit'sbuildingsystem,andsinceitcannicelycross-compileforMinGW,youwillhaveabuildthatdoesn'tdependonCygwinanymore.
Note:
Thisinformationisrippedfromthisthread(http:
//www.ogre3d.org/phpBB2/viewtopic.php?
t=6964)inthetheOgreforums.(thxLt.CYX&wumpus!
)
1)Fullcygwininstall.Mightneedtoaddcorrectpathto/etc/profile-itwasn'tcreatedonmyfirstinstall.
2)getOGREheadfromCVS(thereisatutorialonhowtodoitintheCVSAccesssection(http:
//www.ogre3d.org/modules.php?
op=modload&;;amp;name=Sections&file=index&req=viewarticle&page=1&arttitle=Getting+Ogre+from+CVS)ofOGREHomepage).Iputthison/usr/dev/ogre.Thisshouldalsoworkwithreleaseversion1.0.0orlater-actuallyitworkedwith1.0.0RC1,Iusedthelinux/OSXversion.Didn'ttrythewin32,butitmustbenotthatdifferent.
3)gettheMingW/CygwinOGREdependenciesfromtheOGREwebsite.Eitherextractittotheroot(thuscreating/mingw)ortoanotherdirectoryandcreateasymlink/mingwpointingtothecorrectlocation(that'swhatIdid).
4)downloadandinstalllibtool1.5.12(ornewer).Version1.5.10(theonethatcamewithcygwin)generatesafewerrorswewanttoavoid.
4.1)downloadstableversionfromthelibtoolwebsite(http:
//www.gnu.org/software/libtool/libtool.html)
4.2)configure,makeandmakeinstallit.
4.3)cygwinhasalibtoolwrapperthatautomaticallyselects1.5.10or1.4.3-weneedtomakeituseour1.5.12(ornewer)versioninstead.Forthat,firstwecopythelibtoolfilesfrom/usr/local/binto/usr/autotool/1.5.x/bin(you'llhavetocreateit),thenedit/usr/bin/libtooltousethatdirectoryinsteadofthedeveldir.It'sjustaquick,nastyhack-ifsomeoneknowsofabetterwaytogetthesameresults,pleasefeelfreetoinform.Thisshouldn'tbreakanythingthough.
4.4)(optional)gotoadirectorywithoutconfigure.acorconfigure.infilesanddoa'libtool--version'toseeifthefirstversionnumberchanged.Ifso,wecangotothenextstep.
5)followtheinstructionsonthebeginningofthispost(thankstowumpus),whichImodifiedslightlyandreproducehere.Thisistobedoneintheogrenewdirectory:
5.1)exportPATH="$PATH:
/mingw/bin"
5.2)exportACLOCAL_FLAGS="-I/mingw/share/aclocal"
5.3)exportPKG_CONFIG_PATH=/mingw/lib/pkgconfig
5.4)./bootstrap
5.5)CC="gcc-mno-cygwin"CXX="g++-mno-cygwin"CXXFLAGS="-O2-I/mingw/include"LDFLAGS="-L/mingw/lib-L/lib/w32api"./configure--with-ft-prefix=/mingw--with-platform=Win32--with-gl-support=Win32--disable-static--build="i686-pc-mingw32"--enable-direct3d
5.6)make
5.7)makeinstall
6)setupyourdevelopmenttools.
6.1)passingthearguments"-lOgreMain-Wl,--enable-runtime-pseudo-reloc"tothelinkerwillwork.
6.2)asfaraslibrarydirectoriesgo,youcanlinktocygwin/usr/local/libandbehappyaboutit.
6.3)includedirectories:
cygwin/usr/local/include,cygwin/usr/local/include/OGREandogrenew/Samples/Common/include(ifyouareusingtheExampleApplicationclass).WhereIsaycygwin/Iactuallymeanthecygwinpath(suchasc:
/cygwin),andthesamegoesforogrenew/(c:
/cygwin/usr/local/ogre/ogrenew,forexample)
6.4)thisisnotrequired,butItendtocopyallrequiredDLLstomybuilddirectory:
theonewhereMingWputsmycompiledbinaryon.ThiswayIkeepmyenvironmentclean,andyoucanjustcopythatdirectorytoanothercomputerandrunitwithitsowndlls.Thisavoidsmess.
Thereyougo.Youshouldbeabletosafelybuildanypost-1.0.0withthis,unlesstherearesomebigchangesthatbreaktheprocess.
[edit]AnjutaIDE
7AnjutaIDE
1)安装OGRE
2)运行AnjutaIDE并建立一个新的Generic/TerminalAPP项目。
3)选择C++
4)删除MAIN。
CC中的内容,然后键入下面的内容
#include"Ogre.h"
#include"Dome.h"
intmain(intargc,char*argv[])
{
//Createapplicationobject
Domeapp;
try{
app.go();
}catch(Ogre:
:
Exception&e){
std:
:
cerr<<"Anexceptionhasoccured:
"<:
endl;
}
return0;
}
5)GototheSettingsMenuandchooseCompilierandLinkerSettings
6)按照下述的内容修改各个选行。
IncludePaths:
(ogrenew)/Samples/Common/include
(ogrenew)/OgreMain/include
/usr/include/OGRE
Librarypaths:
/usr/local/lib
(ogrenew)/OgreMain/lib
(ogrenew)/OgreMain/src
(ogrenew)/Samples/Common/include
Libraries:
OgreMain
Options:
IntheCompilierflags(CFLAGS)boxaddthis:
-g-O2-fPIC-DH