随着android在全球的风靡,越来越多的人将自己的目光投向搭载android的移动设备,但由于手持设备的局限性,怎样利用有限的资源来达到很好的体验,是设备厂商必须要考虑的问题,其中炫目的界面就是可以增加用户体验的一种方式。这其中,3D效果无疑是对用户最具吸引力和说服力的。而3D引擎可以大大节省开发3D的成本,所以做了一次调查,此次调查的引擎必须满足以下:
开源:便于更改代码,优化性能,且免费。(商业引擎更出色,花钱不是?)
支持OpenGL:DirectX只能用于windows平台
可移植到Android:一定要支持Android平台
效率相对较高:移动设备的局限性,如电量,CPU,GPU等
Horde3D
OGRE3D
Irrlicht
jmonkey
Catcake
jPCT-AE
min3d
gamine
Alien3D
1、OGRE
name | OGRE |
Supported Graphic lib | OpenGL 、Direct3D |
Develop Language | C++,builds on gcc 3+ on Linux |
description | 一个强大的实时图形引擎。目前全球评价最好使用最广的免费开源引擎,可媲美商业引擎。 |
merit | 支持多种纹理图片格式,包括:PNG,TGA,DDS,TIF,GIF,JPG;支持骨骼动画,内置强大的材质管理和脚本系统,可以不动一行代码去进行材质维护,并且有可视化的编辑工具。文档完善。 |
defect | 入门相对较难,渲染效率低。只专注于图形,不包含声音、网络等模块,但留有接口,如有需要,可以添加第三方外挂库,如物理库、音频库等结合开发。 |
2、Irrlicht
name | Irrlicht |
Supported Graphic lib | OpenGL 、Direct3D |
Develop Language | C++ |
description | 著名的“鬼火”引擎 |
merit | 上手很快,易用性强,运行速度快,提供了可以在商业级的3D引擎上具有的动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测。现在网络上有很多Irrlicht的增强程序,可以拿来使用。 |
defect | 对BSP支持较为贫乏 |
3、jmonkey
name | jmonkey |
Supported Graphic lib | OpenGL 、Direct3D |
Develop Language | Java |
description | JMonkey 3D 是一款用于java 3D引擎 |
merit | 封装了OpenGL,提供全性能的工具包,主要有图片解码器、文件解码器、GUI系统、粒子系统、物理系统、光照系统等,功能很齐全。 |
defect | JME对于OPENGL封装得太好, 以至根本找不到GL的痕迹, 很多底层优化无法修改。目前只支持opengl es 2.0 |
name | Catcake |
Supported Graphic lib | OpenGL |
Develop Language | C++,java |
description | Catcake是一款跨平台的Java 3D图形引擎,也有C++版本 |
merit | 有专门的android版本,易用性和运行性能上有出色的表现。 支持音频处理和视频播放。 |
defect | 文档不足 |
name | jPCT-AE |
Supported Graphic lib | OpenGL |
Develop Language | Java |
description | jPCT-AE是jPCT在Android平台上的移植版本,以java语言为基础 |
merit | 体积小,专门的Android移植版本,有着惊人的向下兼容性,可以运行在JVM1.1环境之中,因为jPCT内部提供的图形渲染 接口完 全符合所有的Java 1.1规范。 |
defect | Java编写,效率有待考量 |
name | Horde3D |
Supported Graphic lib | OpenGL |
Develop Language | C++ |
description | Horde3D is a small open source 3D rendering engine |
merit | 简单易懂,自带了场景编辑器,集成了简单的模型编辑,粒子编辑,动作编辑等功能 |
defect | 效率不是很高 |
7、min3D
name | min3D |
Supported Graphic lib | OpenGL |
Develop Language | Java |
description | lightweight 3d library/framework for Android using Java with OpenGL ES targeting compatibility with Android v1.5/OpenGL ES 1.0 and higher. |
merit | 专门的android 3d UI引擎,非常小巧,只有几百K。基于opengl es 1.x, 封装了opengl 的一些基本的绘图操作以及绘图管理和渲染操作。提供了一个活动类RenderActivity,上手容易。 |
defect | 功能相对简单。 |
8、gamine
name | gamine |
Supported Graphic lib | OpenGL |
Develop Language | Java |
description | 一款小型的java 3D引擎 |
merit | 专门为Android开发的引擎,体积小,调研容易 |
defect | 效率稍低 |
9、Alien 3D
name | Alien 3D |
Supported Graphic lib | OpenGL |
Develop Language | Java |
description | java编写的OpenGL ES接口的3D游戏引擎 |
merit | 3DS装载、2D 粒子、原型插件,tiled地图、精灵动画 |
defect | 研究资料太少 |
上述列举了引擎的介绍,优缺点等,大家可以根据自己的需要和侧重点选择,其中,OGRE和Irrlicht是比较成熟的产品,是开源的3D引擎中使用比较多的,网上有较多的文档和使用经验。 另外引擎的选择,重要的两点:1、效率,算法是否足够优秀;2、效果是否足够好,能不能达到你想要的绚丽效果,锯齿是否严重,运行时是否清新等。
下面着重列举两个引擎做对比。
OGRE | Irrlicht | |
开发语言 | C++ | C++ |
易用性 | 门槛较高 | 易懂,入门低 |
效率 | opgl渲染较慢 | 较高 |
美观 | 渲染的效果很好,清晰, 视觉效果好 | 运动较流畅,视觉效果还可以 |
资料 | 很多,被广泛研究和移植, 有很多项目和经验可以借鉴 | 全面,很多成功开源的项目及经验 |
移植性 | 需要参考资料移植 | 专门的Android版,移植简单 |
使用率 | 很成熟,免费3D图形引擎 中评价最高,使用率广 | 成熟的引擎,使用率较广 |
纹理格式和场景格式 |
lPNG, JPEG, TGA, BMP
l3D Max, Maya, Blender
|
l PSD,JPG,PNG,TGA,BMP
l3DS,OBJ,MY3D,CSM,DAE,DMF,MS3D, LMTS, MD2
|
欢迎大家借鉴和补充。在这要提醒各位,要注意这些3D引擎的开放协议,以免带来不便。
附:各引擎的source地址: