最近由于工作需要,对支持Android的一些开源3D引擎做了调研,结果如下:

1.Ogre

十分强大的一款3D引擎,号称工业级标准的开源项目,不仅可以用于游戏,还可以用于其他和3D相关的软件。大多数该有的功能都支持。Ogre只专注于做3D引擎,一些3D游戏中的常用功能例如:音效、碰撞/物理系统等都不支持。

优点:学习资料多,性能屌炸天,我试着运行过提供的sample app,效果非常棒,同时还能保持非常高的帧率。

缺点:C++编写的,想在Android系统上玩起来,自己要做不少封装的工作(sample提供的方法是用native activity,这个完全没有普适性),而且在Android项目中调试C++代码也非常不方便。库文件比较大也是个问题,虽然采用的是静态链接,但是一个只显示一张图片什么都不干的sample需要的so库就有7m多。另外,android平台的相关资源非常少。

2.JPCT-AE

纯Java编写的一款3D引擎,JPCT是PC版,JPCT-AE是专门针对Android平台的版本。

优点:库很小,核心库只有几百kB。纯Java编写,不用自己搞接口封装了。另外,结合一个叫Bone的插件,可以支持骨骼动画。

缺点:效率比较成问题,大一点的模型,显示时帧率会比较低。另外,支持载入dae文件的接口类有bug,有时会解析出错误的骨骼或者动画。

3.jMonkey

与其说是3D引擎,jMonkey更像是游戏开发引擎,并且还是跨平台的。只要下载了它的SDK,把需要的插件安装好,就可以做到一次编写,多个平台部署了。

优点:做的很成熟,文档也不少。适合3D游戏开发者。编写的App可以先在pc上运行调试,再生成android版本,这点很方便。

缺点:对OpenGL封装的太好了,很难做底层操作。甚至连Android上面开发游戏都有继承自Activity的类支持,虽然省事,但是有点太自成一体了,自由度相对下降了不少。

4.Gameplay3d

用C++编写,功能很强大,支持多种3d模型格式,更像是一款3d游戏开发引擎

优点:跨平台,java编写,很适合游戏开发者。

缺点:和jMonkey一样,封装的太好了,自由度低了一些,对于不是做游戏的3d开发者,可能不太适合。

5.bonzai

java编写,功能很强大,支持多种3d模型格式,文档也比较全

优点:非常灵活,既可以作为整体,使用bonzai提供的一些framework,也可以不用framework,把它当作插件一样使用。

缺点:liciense不是很好。用于开源、免费的项目没问题。用于商业用途的项目需要和bonzai的开发者联系,估计是要收取一定费用的。

6.其他

除了上面的,其实还有很多款可以在android上使用或者很容易移植到上面的3D引擎,其中:

irrlicht据说很强大,这个我没有深入调研过。

而下面的这些:

ardor3D

alien3d

catcake

......

由于太小众、功能太少、资料不全或者处于不再维护状态,就不介绍了。

支持Android 的几款开源3D引擎调研的更多相关文章

  1. Android 8款开源游戏引擎

    1.Angle  (2D    Java) Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGLES技术开发.该引擎全部用Java代码编写,并且可以根据自己 ...

  2. 转:典型开源3D引擎分类比较

    常见的3D引擎有:Unreal.Quake.Lithtech.OGRE.Nebula.Irrlicht.Truevision3D... 其中开源免费的有:OGRE.irrlicht.fly3d.Neo ...

  3. 转:开源3D引擎介绍

    Delta3D:Delta3D是一个功能齐全的游戏引擎,可用于游戏,模拟或其他图形应用.其模块化设计集成了其他的开源项目,如‘开放场景图’,‘开放动力学引擎’,‘人物动画库’和‘OpenAL’ .De ...

  4. 开源分布式计算引擎 & 开源搜索引擎 Iveely 0.5.0 为大数据而生

    Iveely Computing 产生背景 08年的时候,我开始接触搜索引擎,当时遇到的第一个难题就是大数据实时并发处理,当时实验室的机器我们可以随便用,至少二三十台机器,可以,却没有程序可以将这些机 ...

  5. 从0开发3D引擎(七):学习Reason语言

    目录 上一篇博文 介绍Reason Reason的优势 如何学习Reason? 介绍Reason的部分知识点 大家好,本文介绍Reason语言以及学习Reason的方法. 上一篇博文 从0开发3D引擎 ...

  6. 记录一下八款开源 Android 游戏引擎

    记录一下八款开源 Android 游戏引擎 虽然android学了点点,然后现在又没学了(我为啥这么没有恒心呢大哭).以后有时间还是要继续学android的,一定要啊!虽然现在没学android游戏编 ...

  7. [转载]或许您还不知道的八款Android开源游戏引擎

    或许您还不知道的八款Android开源游戏引擎         分类:             技术文章              2010-08-04 20:27     17430人阅读     ...

  8. Android 八款开源 Android 游戏引擎

    原文地址 本文内容 Angle Rokon LGame AndEngine libgdx jPCT Alien3d Catcake 最近无意间看到一篇关于 Android 搜索引擎的文章,于是搜索了, ...

  9. 八款开源 Android 游戏引擎[转]

    记录一下,以备不时之需~~~~~ 虽然android学了点点,然后现在又没学了(我为啥这么没有恒心呢大哭).以后有时间还是要继续学android的,一定要啊!虽然现在没学android游戏编程,不过还 ...

随机推荐

  1. java基础篇---I/O技术(一)

    对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输入流:数据源到程序(inputStr ...

  2. 【WPF】添加自定义字体

    需求:在WPF项目中使用幼圆字体. 步骤: 1.首先要有幼圆TTF字体文件.在C:\Windows\Fonts目录下找,如果系统字体库中没有,就上网下一份,如这里或这里. 2.将字体文件复制到WPF项 ...

  3. vnc 登录 Ubuntu gnome 桌面出现 QXcbConnection : Failed to initialize XRandr 错误,然后打不开

    现象如下: 解决方法是在 启动的时候加入 -noload Welcome 参数 也可以在 ~/.local/share/applications/DigiaQt-qtcreator-community ...

  4. sc58x config

    addip=set bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off ...

  5. Go学习笔记 - 关于Java、Python、Go编程思想的不同

    ***看了两周七牛团队翻译的<Go语言程序设计>,基本上领略到了Go语言的魅力.学习一个语言,语法什么的任何人都是很容易学会,难就难在充分领略到这门编程语言的思想.*** ## 面向对象 ...

  6. boot cd_rom struct

    资料: 1.introduction_to_iso9660.pdf 2.boot-cdrom.pdf Normal ISO9600:offset: 16*2048[0x8000] The Primar ...

  7. [数学-构造矩阵]NEFU 1113

    依据题意.我已经推导出tn的公式.ti=ti.a+ti.b,ti.a=5*t(i-1).a+4*t(i-1).b,ti.b=t(i-1).a+t(i-1).b 然而以下居然不能继续推到sn的公式!!! ...

  8. Java 应该被记住的8位大人物

    这里列举了 8 个 Java 人物,他们创建了对 Java 社区贡献很大的框架.产品.工具和图书,也因此改变了 Java 的编码方法. 8. Tomcat 和 Ant 创办人 James Duncan ...

  9. San初步使用

    考虑使用这个玩意只有两个理由: 组件反解.可以让服务端模板渲染首屏,随后由框架接手控制. 从IE7(作者在评论中有提到)开始支持.     在改造老项目上特别吸引人,只需要移除哪些繁杂的dom操作由m ...

  10. python 查看目录下所有目录和文件

    python查看目录下所有的子目录和子文件 python递归遍历目录结构 我喜欢第一种 方法1 import json, os def list_dir(path, res): for i in os ...