随着android在全球的风靡,越来越多的人将自己的目光投向搭载android的移动设备,但由于手持设备的局限性,怎样利用有限的资源来达到很好的体验,是设备厂商必须要考虑的问题,其中炫目的界面就是可以增加用户体验的一种方式。这其中,3D效果无疑是对用户最具吸引力和说服力的。而3D引擎可以大大节省开发3D的成本,所以做了一次调查,此次调查的引擎必须满足以下:
开源:便于更改代码,优化性能,且免费。(商业引擎更出色,花钱不是?)
支持OpenGL:DirectX只能用于windows平台
可移植到Android:一定要支持Android平台
效率相对较高:移动设备的局限性,如电量,CPU,GPU等
目前调查的结果共得到9款引擎,在这分享给大家,节省大家的调查时间(调查过程中发现有更多,不过个人筛选出了9种):
Horde3D
OGRE3D
Irrlicht
jmonkey
Catcake
jPCT-AE
min3d
gamine
Alien3D
针对9种引擎做参数分析:
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
|
4、Catcake
name
|
Catcake
|
Supported Graphic lib
|
OpenGL
|
Develop Language
|
C++,java
|
description
|
Catcake是一款跨平台的Java 3D图形引擎,也有C++版本
|
merit
|
有专门的android版本,易用性和运行性能上有出色的表现。 支持音频处理和视频播放。
|
defect
|
文档不足
|
5、jPCT-AE
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编写,效率有待考量
|
6、Horde3D
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
|
lPSD,JPG,PNG,TGA,BMP
l3DS,OBJ,MY3D,CSM,DAE,DMF,MS3D, LMTS, MD2
|
欢迎大家借鉴和补充。在这要提醒各位,要注意这些3D引擎的开放协议,以免带来不便。
附:各引擎的source地址:
分享到:
相关推荐
行业文档-设计装置-将Flash游戏移植到Android平台上的方法.zip
文档记录了ntfs-3g-2013移植到android的详细过程
ffmpeg-compile-shared-library-for-android, 移植ffmpeg到android,编译可用于jni调用的so库.
ntfs-3g 20140215版本 移植到android的源码 放到external目录编译即可使用
可以移植到android平台实现NTFS文件系统挂载读写
u-boot-2010.06移植到TQ2440,串口可以打印出东西,支持nor flash、nand flash、DM9000.
caffe-android-lib, 将caffe移植到android平台 Caffe-Android-Lib目标移植到android平台的端口 caffe支持Up-to-date caffe ( d91572d )仅 CPU不支持 hdf5插件生成推荐:使用 Dockergit clo
android平台移植ntfs-3g使支持ntfs格式tf卡、U盘、stat硬盘挂载,解压文件到external目录下,mm编译成功后,可手动指行 ntfs-3g /dev/block/vold/* /storage/sdcard1 或者添加 Ntfs.cpp Ntfs.h到system/vold目录实现...
FIFO轻量级环形缓冲管理器开源库--可嵌入式移植 blog: https://blog.csdn.net/Wekic/article/details/119046393
STM32的开源Bootloader框架 RT-FOTA 移植 文档对应的源码程序 https://blog.csdn.net/weixin_39946218/article/details/124491960
android-移植调试-openMax多媒体引擎android-移植调试-openMax多媒体引擎
移植到 android 下的 ntfs-3g
[14本经典Android开发教程]-11-Android系统移植技术详解 -------------------------------------------------- (1)安装如下软件包 sudo apt-get install git-core sudo apt-get install gnupg sudo apt-get install...
Apache PdfBox项目移植到Android上
FFMPEG 移植到android
Android系统移植(一)-让android系统在目标平台上运行起来 18 Android系统移植(二)-按键移植 20 Android系统移植(三)-按键字符表 25 android启动过程配置文件的解析与语法 28 android系统开发(四)-触摸屏tslib移植...
j2objc:Java转成Objective-C的用于移植Android库到iOS
Cocos2d-x将win32移植到android进行编译教程
书名:《Android底层开发技术实战详解——内核、移植和驱动》(电子工业出版社.王振丽)。本书从底层原理开始讲起,结合真实的案例向读者详细介绍了android内核、移植和驱动开发的整个流程。全书分为19章,依次讲解...
OpenSSH移植到android系统externel步骤