文档章节

3D引擎--可移植到Android的开源的引擎及调查报告

我希冀着
 我希冀着
发布于 2011/11/28 14:16
字数 1555
阅读 4345
收藏 13

随着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
l PSD,JPG,PNG,TGA,BMP
l3DS,OBJ,MY3D,CSM,DAE,DMF,MS3D, LMTS, MD2

欢迎大家借鉴和补充。在这要提醒各位,要注意这些3D引擎的开放协议,以免带来不便。

附:各引擎的source地址:

•jmonkey  svn checkout    http://jmonkeyengine.googlecode.com/svn/trunk

本文转载自:http://blog.csdn.net/liufengcool/article/details/6931311

共有 人打赏支持
我希冀着

我希冀着

粉丝 70
博文 44
码字总数 26777
作品 0
厦门
Android工程师
私信 提问
加载中

评论(2)

bawanglb
bawanglb
mark,需要看看
不知道这几种平台的实际运行差别,就把软件放到 手机应用测试平台
http://t.cn/SG8KHo

中国移动(RTS)手机应用测试平台,提供真实手机,并能远程安装、测试手机应用。只要联网,通过网页就可以为你的作品进行不同的手机进行测试,节省开发者的开发时间,降低开发成本。。平台包括Android、S60 wm6/7、Ophone等众多OS与机型
认识AndEngine选自Android 2D游戏引擎AndEngine快速入门教程

认识AndEngine什么是AndEngine 随着Android手机、平板的盛行,Android下的游戏也不断的变得火热。而对于游戏开发有兴趣的同学们,应该也想要学习开发游戏。虽说游戏开发的引擎较多,但是大多...

大学霸
2015/01/06
0
0
娱乐开发两不误,10 大开源游戏框架推荐

从角色扮演游戏到即时策略游戏,从冒险解谜游戏到动作射击游戏,甚至是只有一兆大小的迷你游戏,都有起着核心作用的技术组成部分。本文将介绍十大好用的开源游戏引擎和框架,希望能给你的游戏...

编辑部的故事
2017/10/25
0
19
什么是android(What Is Android?)

什么是Android? Android是一个移动设备,包括操作系统,中间件和关键应用软件堆栈。 而 Android SDK提供了必要的工具和API,开始使用Java编程语言在Android平台开发应用程序。 特点 应用程序...

_kxng
2011/08/03
0
2
What is Android?

Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的 Android SDK 提供了在Android平台上使用JaVa语言进行Android应用开发必须的工具和API...

Eason/余春
2010/03/17
0
1
Android组件及UI框架大全

Android 是目前最流行的移动操作系统(还需要加之一吗?)。 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件。 本文试图将目前流行...

千山万水
2015/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.4 搭建 ss

一键安装 shadowsocks-go 版 wget –no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go.sh chmod +x shadowsocks-go.sh ./s......

YunOu
20分钟前
2
0
Spark Streaming整合kafka实战

kafka作为一个实时的分布式消息队列,实时的生产和消费消息,这里我们可以利用SparkStreaming实时计算框架实时地读取kafka中的数据然后进行计算。在spark1.3版本后,kafkaUtils里面提供了两个...

hblt-j
20分钟前
1
0
vue组件中的样式属性scoped实例

vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素 。接下来通过本文给大家分享vue组件中的样式属性scoped实例详解 **Scoped CSS** Scoped CSS规范是Web组件产...

前端攻城老湿
36分钟前
3
0
ios 面试部分整理

assign weak区别 assign不是有崩溃的风险么 strong和copy 对非容器类可变类型 非容器类不可变 容器类可变容器类不可变 进行深拷贝浅拷贝有什么区别 什么样的对象可以进行拷贝 就是这个NScod...

大魔王周晓辉
37分钟前
2
0
浅谈教你如何掌握Linux系统

linux能做什么?相信绝大数人都有这样的疑问。可以玩吃鸡吗?可以玩lol吗? 如果你是以娱乐的名义来评价linux的可用性,对不起,linux可能不适合你,因为linux是一个工具,他是教你聪明的,不...

Linux就该这么学
37分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部