欢迎来到天天文库
浏览记录
ID:33415096
大小:2.75 MB
页数:8页
时间:2019-02-25
《开源3d游戏引擎irrlicht(鬼火)用法入门》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、开源3D游戏引擎Irrlicht(鬼火)用法入门赵刚Irrlicht(中文名:鬼火)是著名的3D开源引擎之一,该3D引擎结构清晰,执行效率高,上手容易,无论是初学者学习3D游戏引擎,还是用来开发规模较小的3D应用都是很不错的选择。本文以Irrlicht1.7.2版(目前的最新版)为例,讲解其在Windows系统中的用法。首先需要在http://irrlicht.sourceforge.net/downloads.html下载Irrlicht的SDK,1.7.2版的SDK尺寸为24.6MB,非常轻巧,几分钟内即可下载到本地。SDK下载到本地后是
2、一个名为irrlicht-1.7.2.zip文件,将该文件解压(可以右键点击zip在弹出菜单中选择“解压到当前文件夹”,如果装了WinRAR软件的话,得到一个名为irrlicht-1.7.2的目录,进入该目录得到以下结构:在bin中Win32-VisualStudio目录已经包含了编译好的dll,当然如果需要对引擎做些修改的话就需要重新编译SDK生成dll,编译SDK非常容易,进入source目录下的Irrlicht目录,可以找到VisualStudio的解决方案文件,7.1版,8.0版,9.0版的都有,以使用VisualStudio2008
3、为例,可以双击Irrlicht9.0.sln文件打开解决方案。解决方案在VisualStudio2008中的表现如下图:可以试一下不修改任何代码直接生成解决方案,编译过程应该会顺利通过(会有一大堆warningC4819,可以不用理睬她们),完成后会在bin中的Win32-VisualStudio目录下找到一个新的irrlicht.dll。如果编译过程中出现了fatalerrorC1083:无法打开包括文件:“d3dx9shader.h”这样的错误那说明你没有安装DirectXSDK,如果一定要用DirectX作为底层渲染API,那可以到ht
4、tp://msdn.microsoft.com/zh-cn/directx/下载一个安装上,DirectXSDK尺寸很大500MB+,如果不是特别喜爱微软产品的话,可以不用DirectXSDK直接用OpenGL,但是编译前要告诉irrlicht,嗨!我不用DirectX呢,忽略它好不好!否则irrlicht会执着的报错,让你编译不成功。怎么告诉irrlicht呢?很简单,打开include目录下的IrrCompileConfig.h文件,找到#define_IRR_COMPILE_WITH_DIRECT3D_9_这一句,直接注释掉就可以了再编
5、译就能成功了,如果不成功,那非常不幸,我也不知道为什么,反正我编译过好几个版本,都能很顺利的编译出来,查查VisualStudio的问题吧。其实编译成功了也没什么值得喜悦的,因为本来就是会编译成功的,如果你修改了引擎中的很多代码还能编译成功的话,那才值得喜悦一下。如果想先看看irrlicht引擎的效果可以进入bin目录下的Win32-VisualStudio目录里面有很多.exe文件,其中第一个是01.HelloWorld.exe双击运行,可以立刻看到下面的画面:看起来是一个挺丑陋的画面,不过不用担心,这个画面不代表irrlicht的实力,只
6、表示irrlicht在你的电脑上运行正常,要画面漂亮,提供漂亮的模型和纹理图片就好了。还有很多其他demo都可以试一下,比如02.Quake3Map.exe出来下面的画面,比HelloWorld画面美不少。运行02.Quake3Map.exe的时候会先出来一个控制台窗口选a就好了,表示使用OpenGL作为底层渲染API。运行时鼠标会隐藏起来,这样你无法通过点击窗口上的“X”关闭窗口,要关闭运行窗口退出程序可以按下ALT+F4,这一招很灵。一定想看看怎样用irrlicht写一个最简单的程序:HelloWorld!了,正好,irrlicht自己带
7、着一个作为入门例子的HelloWorld,我们打开它看个究竟。进examples目录看到01.HelloWorld目录,进去后双击HelloWorld_vc9.vcproj即可打开HelloWorld工程,HelloWorld工程里只有一个main.cpp文件,文件内容如下(去除了英文注释):#includeusingnamespaceirr;usingnamespacecore;usingnamespacescene;usingnamespacevideo;usingnamespaceio;usingnamespac
8、egui;#ifdef_IRR_WINDOWS_#pragmacomment(lib,"Irrlicht.lib")#pragmacomment(linker,"/
此文档下载收益归作者所有