3D引擎--可移植到Android的開源的引擎及調查報告

隨着android在全球的風靡,愈來愈多的人將本身的目光投向搭載android的移動設備,但因爲手持設備的侷限性,怎樣利用有限的資源來達到很好的體驗,是設備廠商必需要考慮的問題,其中炫目的界面就是能夠增長用戶體驗的一種方式。這其中,3D效果無疑是對用戶最具吸引力和說服力的。而3D引擎能夠大大節省開發3D的成本,因此作了一次調查,這次調查的引擎必須知足如下:php

開源:便於更改代碼,優化性能,且免費。(商業引擎更出色,花錢不是?)
支持OpenGL:DirectX只能用於windows平臺
可移植到Android:必定要支持Android平臺
效率相對較高:移動設備的侷限性,如電量,CPU,GPU等


目前調查的結果共獲得9款引擎,在這分享給你們,節省你們的調查時間(調查過程當中發現有更多,不過我的篩選出了9種):

  Horde3D
  OGRE3D
  Irrlicht
  jmonkey
  Catcake
  jPCT-AE
  min3d
  gamine
  Alien3D


針對9種引擎作參數分析:

一、OGRE

namehtml

OGREjava

Supported Graphic libandroid

OpenGL 、Direct3D算法

Develop Languagewindows

C++,builds on gcc 3+ on Linux網絡

description編輯器

一個強大的實時圖形引擎。目前全球評價最好使用最廣的免費開源引擎,可媲美商業引擎。svn

merit工具

支持多種紋理圖片格式,包括:PNG,TGA,DDS,TIF,GIF,JPG;支持骨骼動畫,內置強大的材質管理和腳本系統,能夠不動一行代碼去進行材質維護,而且有可視化的編輯工具。文檔完善。

defect

入門相對較難,渲染效率低。只專一於圖形,不包含聲音、網絡等模塊,但留有接口,若有須要,能夠添加第三方外掛庫,如物理庫、音頻庫等結合開發。


二、Irrlicht

name

Irrlicht

Supported Graphic lib

OpenGL 、Direct3D

Develop Language

C++

description

著名的「鬼火」引擎

merit

上手很快,易用性強,運行速度快,提供了能夠在商業級的3D引擎上具備的動態的陰影,粒子系統,角色動畫,室內和室外技術以及碰撞檢測。如今網絡上有不少Irrlicht的加強程序,能夠拿來使用。

defect

對BSP支持較爲貧乏

三、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

四、Catcake

name

Catcake

Supported Graphic lib

OpenGL

Develop Language

C++,java

description

Catcake是一款跨平臺的Java 3D圖形引擎,也有C++版本

merit

有專門的android版本,易用性和運行性能上有出色的表現。 支持音頻處理和視頻播放。

defect

文檔不足

五、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編寫,效率有待考量

六、Horde3D

name

Horde3D

Supported Graphic lib

OpenGL

Develop Language

C++

description

Horde3D is a small open source 3D rendering engine

merit

簡單易懂,自帶了場景編輯器,集成了簡單的模型編輯,粒子編輯,動做編輯等功能

defect

效率不是很高

七、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

功能相對簡單。

八、gamine

name

gamine

Supported Graphic lib

OpenGL

Develop Language

Java

description

一款小型的java 3D引擎

merit

專門爲Android開發的引擎,體積小,調研容易

defect

效率稍低

九、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引擎中使用比較多的,網上有較多的文檔和使用經驗。 另外引擎的選擇,重要的兩點:一、效率,算法是否足夠優秀;二、效果是否足夠好,能不能達到你想要的絢麗效果,鋸齒是否嚴重,運行時是否清新等。

下面着重列舉兩個引擎作對比


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
相關文章
相關標籤/搜索