Irrlicht学习备忘录——0 引擎特点

0引擎特点

Irrlicht是一个采用C++开发的、开源的、完全跨平台的、具有商业引擎特性的、高效的、实时渲染的3D引擎。

编程语言:官方C++wiki上有java,dot NET Framework,Delphi,Pascal,Lua,Ruby

开源协议:基于zlib/libpng协议,有部分使用到jpeg,可以配置编译文件,选择是否将jpeg排除。

直接支持的3D模型文件格式:Maya(.obj), 3DStudio (.3ds), COLLADA (.dae), Blitz3D (.b3d), Milkshape(.ms3d), Quake 3 levels (.bsp), Quake2 models (.md2), MicrosoftDirectX (.X)

直接支持的图片格式:WindowsBitmap (.bmp), Portable Network Graphics (.png), Adobe Photoshop(.psd), JPEG File Interchange Format (.jpg), Truevision Targa (.tga),ZSoft Painbrush (.pcx)

渲染方式:Direct3D8.1Direct3D 9.0OpenGL1.2-3.x三种硬件加速;Irrlicht软件渲染、Burningsvideo软件渲染,两种软件加速。

ShadersPixeland Vertex Shaders 1.1-3.0,ARB Fragment and Vertex Programs

,HLSL,GLSL

其他:可换肤的GUI环境,场景管理系统,角色动画系统,粒子系统、碰撞检测、XML


个人总结的优点:Irrlicht遵循对接口编程的思想,整个引擎的设计无不采用接口的思想,对学C++来说,这种设计方式很值得学习;官方sdk自带例子,而且是按学习顺序编排的,里面注释很全,可以算官方教程了;源码可读性极高,完全可以不需要而外的参考资料,简单易学;有软件渲染部分,看源码能学习软件渲染如何实现;有文件系统,支持zip压缩,文件操作方面很方便;用引擎自身的功能可以实现FPS游戏的大部分功能,但AI、声音,网络部分功能都需自行扩展;自带场景和GUI的导入导出功能。工具方面有个Coppercube-irrEdit,可以做场景编辑器。用Coppercube-irrEdit可以直接作出游戏来发布不同平台版本和Web版本,但是这些功能要收费。

个人总结的缺点:Irrlicht只有渲染部分,物理部分很弱小,只有简单的碰撞检测,用它做游戏至少还需扩展声音和物理引擎;单线程设计,不能充分利用平台性能,多线程加载资源都需要自己扩展。场景编辑器等工具都需自己DIYGUI界面难看,功能较弱。编译选项里可以启用Unicode,但需要修改源码,才能显示中文,支持中文输入。用它做稍微复杂的游戏,需要修改和扩展的工作量一点不小。引擎的消息循环中,没有点击关闭按钮的关闭事件,不能直接在渲染窗口内提示关闭。动态阴影有bug,部分模型阴影显示不正常。引擎最近几年更新缓慢,目前的最新版本是1.8版。引擎结构一直停留在DX9时代。irrXML小巧、速度快,但功能太弱,读取文件时编写相应代码比较费力。irrmesh模型文件,只能保存静态模型。

你可能感兴趣的:(游戏,游戏引擎,游戏编程,3D引擎,Irrlicht)