支持Android 的几款开源3D引擎调研
最近由于工作需要,对支持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的类支持,虽然省事,但是有点太自成一体了,自由度相对下降了不少。
用C++编写,功能很强大,支持多种3d模型格式,更像是一款3d游戏开发引擎
优点:跨平台,java编写,很适合游戏开发者。
缺点:和jMonkey一样,封装的太好了,自由度低了一些,对于不是做游戏的3d开发者,可能不太适合。
5.bonzai
java编写,功能很强大,支持多种3d模型格式,文档也比较全
优点:非常灵活,既可以作为整体,使用bonzai提供的一些framework,也可以不用framework,把它当作插件一样使用。
缺点:liciense不是很好。用于开源、免费的项目没问题。用于商业用途的项目需要和bonzai的开发者联系,估计是要收取一定费用的。
6.其他
除了上面的,其实还有很多款可以在android上使用或者很容易移植到上面的3D引擎,其中:
irrlicht据说很强大,这个我没有深入调研过。
而下面的这些:
ardor3D
alien3d
catcake
......
由于太小众、功能太少、资料不全或者处于不再维护状态,就不介绍了。
支持Android 的几款开源3D引擎调研的更多相关文章
- Android 8款开源游戏引擎
1.Angle (2D Java) Angle是一款专为Android平台设计的,敏捷且适合快速开发的2D游戏引擎,基于OpenGLES技术开发.该引擎全部用Java代码编写,并且可以根据自己 ...
- 转:典型开源3D引擎分类比较
常见的3D引擎有:Unreal.Quake.Lithtech.OGRE.Nebula.Irrlicht.Truevision3D... 其中开源免费的有:OGRE.irrlicht.fly3d.Neo ...
- 转:开源3D引擎介绍
Delta3D:Delta3D是一个功能齐全的游戏引擎,可用于游戏,模拟或其他图形应用.其模块化设计集成了其他的开源项目,如‘开放场景图’,‘开放动力学引擎’,‘人物动画库’和‘OpenAL’ .De ...
- 开源分布式计算引擎 & 开源搜索引擎 Iveely 0.5.0 为大数据而生
Iveely Computing 产生背景 08年的时候,我开始接触搜索引擎,当时遇到的第一个难题就是大数据实时并发处理,当时实验室的机器我们可以随便用,至少二三十台机器,可以,却没有程序可以将这些机 ...
- 从0开发3D引擎(七):学习Reason语言
目录 上一篇博文 介绍Reason Reason的优势 如何学习Reason? 介绍Reason的部分知识点 大家好,本文介绍Reason语言以及学习Reason的方法. 上一篇博文 从0开发3D引擎 ...
- 记录一下八款开源 Android 游戏引擎
记录一下八款开源 Android 游戏引擎 虽然android学了点点,然后现在又没学了(我为啥这么没有恒心呢大哭).以后有时间还是要继续学android的,一定要啊!虽然现在没学android游戏编 ...
- [转载]或许您还不知道的八款Android开源游戏引擎
或许您还不知道的八款Android开源游戏引擎 分类: 技术文章 2010-08-04 20:27 17430人阅读 ...
- Android 八款开源 Android 游戏引擎
原文地址 本文内容 Angle Rokon LGame AndEngine libgdx jPCT Alien3d Catcake 最近无意间看到一篇关于 Android 搜索引擎的文章,于是搜索了, ...
- 八款开源 Android 游戏引擎[转]
记录一下,以备不时之需~~~~~ 虽然android学了点点,然后现在又没学了(我为啥这么没有恒心呢大哭).以后有时间还是要继续学android的,一定要啊!虽然现在没学android游戏编程,不过还 ...
随机推荐
- 别人不会给你说的---C语言中数组名和指针的区别 及 sizeof用法
引自: http://blog.csdn.net/tianyue168/article/details/5781924 #i nclude <iostream.h> int main( ...
- [转]Oracle中Hint深入理解
原文地址:http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担.但有时它也聪明 ...
- led子系统
最简单的led驱动就是从端口输出0或1来关闭或点亮灯.而我们这里讲的led子系统,主要是对led事件进行了分装和优化,这里我们主要讲的是可 以实现跨平台的led驱动.不管你是使用三星的平台,还是Atm ...
- 【进阶修炼】——改善C#程序质量(9)
140,使用默认的访问修饰符. 如果不加访问修饰符,成员变量的默认是private的,类默认是internal的.为了明确访问的权限,我倒是建议都加上访问修饰符,这省不了多少代码. 141,不知道该不 ...
- tomcat添加context方式部署web应用
刚巧碰到了,记录一下. 通过context的方式部署会灵活一点,不必一定指向tomcat里面的webapps目录 这种部署有几种方式: 1.在$CATALINA_BASE/conf/ server.x ...
- 1px的border
css中是这样写的: div{ border-bottom: 1px solid #dfe5e4; } 但在手机上,像素比不为 1 ,由于 webview 的灰度渲染, border 一般会显示为 2 ...
- border-radius背景色超出圆角问题解决
span{ display: block; background: #f4f4f4; color: #333; font-size: 14px; -webkit-border-radius: 20px ...
- Spring cloud系列十四 分布式链路监控Spring Cloud Sleuth
1. 概述 Spring Cloud Sleuth实现对Spring cloud 分布式链路监控 本文介绍了和Sleuth相关的内容,主要内容如下: Spring Cloud Sleuth中的重要术语 ...
- PCL点云配准(1)
在逆向工程,计算机视觉,文物数字化等领域中,由于点云的不完整,旋转错位,平移错位等,使得要得到的完整的点云就需要对局部点云进行配准,为了得到被测物体的完整数据模型,需要确定一个合适的坐标系,将从各个视 ...
- 微信小程序——获取元素的宽高等属性
微信小程序里面无法像用jquery一样获取到元素的节点.小程序提供了一个wx.createSelectorQuery()来获取元素的相关信息.官方的文档对于它的用法都已经写的很详细了. 我直接上在项目 ...