• 支持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的类支持,虽然省事,但是有点太自成一体了,自由度相对下降了不少。

    4.Gameplay3d

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

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

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

    5.bonzai

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

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

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

    6.其他

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

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

    而下面的这些:

    ardor3D

    alien3d

    catcake

    ......

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

  • 相关阅读:
    如何禁止在DBGRID末位自动添加一行记录
    DELPHI加密字串(异或运算加密)
    SQL SERVER 正则替换
    sql里的正则表达式
    UFIDA
    delphi raise 语句: 抛出异常
    delphi怎么一次性动态删除(释放)数个动态创建的组件?
    Delphi动态创建组件,并释放内存
    DELPHI 动态 创建和释放 多个 EDIT 控件
    禁止在DBGrid中按delete删除记录
  • 原文地址:https://www.cnblogs.com/hrlnw/p/4165192.html
Copyright © 2020-2023  润新知