android - 寻找适用于 iOS 和 Android 的基本 2D/3D 图形的跨平台方法

标签 android ios opengl-es clutter

我正在使用原生 SDK 分别为 Android 和 iOS 开发应用程序。 但是,应用程序中有一些模块应该支持基本的 2D(也可以是 3D)功能,例如矢量图形的倾斜、缩放、旋转 + 简单纹理平面上的各种可选花式效果。

我想将这个模块托管在某个 View 的内核中,并且它的代码将尽可能在 iOS 和 Android 平台之间共享。

我一直潜伏在网上寻找各种解决方案。

  1. 首先是 OpenGL,问题是我不熟悉 OpenGL 的编码,而且我无法理解我将使用 OpenGL 编写的代码是否可以在两个平台之间共享。似乎没有人真正尝试过使用 NDK 等来做到这一点。
  2. 有这样的平台

    一个。 Clutter (http://www.clutter-project.org/) - 我找不到它在移动设备上的任何使用示例。

    像 Unity3D 这样的平台,但我认为它们对我帮助不大,因为据我所知,整个应用程序必须在他们的平台上运行,而这不是我想要的。

那么,你们认为在 iOS 和 Android 之间共享 2d/3d 代码是否可行? 如果是这样,您有什么方法可以推荐吗?

或者我应该只使用每个设备的 2d 或 3d 图形的 native 方法?

谢谢!

最佳答案

Kivy :一种开源跨平台编程语言,用于为 Linux、Windows、MacOSX、Android 和 iOS 编写支持 OpenGL 的绘图、界面、视觉效果等任何内容。 kivy.org

您可能会放弃为 Kivy 小部件使用 Android 或 iOS 原生小部件,您的应用程序将在所有平台上具有相同的 OpenGL 支持的界面。

编辑 2011 年 9 月 27 日下午 1 点: 我做了更多研究。总而言之,您应该亲自检查这 4 个开源框架,然后决定哪一个最适合您(我可以列出商业框架,但很容易找到):

  1. 基维 ( kivy.org )
    • 惊人的 GUI 和小部件库。
  2. HaxeNME ( haxenme.org )
    • 用于制作 OpenGL 图形的非常好的 2D/3D API。
    • 惊人的 跨平台支持。所有框架中最好的。
    • 遗憾的是,虽然没有内置 GUI 或 Widget 库。
  3. Qt Quick QML ( qt-project.org )
    • 用于制作 OpenGL 图形的非常好的 2D/3D API。
    • 类似于 HTML,但适用于 OpenGL。已经了解 HTML 和 JavaScript? QML(快速标记语言)包括文本字段、单选按钮、复选框等基本必需品,可以使用事件处理程序对其进行动画处理和控制。 QML 应用程序中的动画、事件处理程序等是用 JavaScript 编写的;不同之处在于 JavaScript 被编译而不是被解释。
    • Qt Quick 真的很棒;我个人的最爱。阅读 Qt Quick QML,然后尝试 Animated Tiles Android 应用程序以了解 Qt Quick 的潜力。 Qt 的最新版本(即将推出)支持 iOS、Android 和 Blackberry 以及所有桌面操作系统。 Windows Phone 是一项正在进行的工作,但考虑到 Qt Quick 已经支持 Windows 8 的 Metro 平台,它很快就会到来。 Qt Quick 非常好,但它并不像 HaxeNME 那样适用于所有平台。
  4. MoSync ( mosync.com )
    • 一颗隐藏的 gem 。这个框架需要更多的曝光。 MoSync SDK 提供了一个跨平台的 OpenGL 框架、一个类似于 PhoneGap 的 HTML/JavaScript 框架、一个用于跨平台编写应用程序(使用每个平台的 native UI 小部件)的 NativeUI 框架,以及一个用于编写 C++ GUI 的 MAUI。
    • 如果您只想编写纯 OpenGL,那么我至少建议您检查一下 MoSync,因为它提供了 OpenGL ES 1.0/2.0 的一对一实现。

另外,如果您的应用程序是基于表单的(不像游戏那样具有动画效果),那么 PhoneGap 可能会满足您的需求。如果你使用 HTML5 的正确特性,你可以制作出感觉原生的应用程序(不像那里的许多可怕和令人沮丧的例子)。如果您想尝试使用 PhoneGap 制作的感觉“原生”的应用程序,请尝试“Go 2012”。 Go 2012 应用程序证明,如果正确使用 HTML5,则可以跨平台(iOS、Android、黑莓和 Windows Phone(我在所有平台上测试过))利用硬件加速。 Go 2012 中的动画(滚动等)都是 CSS3 硬件加速动画。 不要被 PhoneGap 展示中大多数应用的低质量所蒙蔽!

关于android - 寻找适用于 iOS 和 Android 的基本 2D/3D 图形的跨平台方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673958/

相关文章:

android - 如何切换到Playstore中的旧版本应用程序?

ios - 当 SceneKit 动画停止时,SpriteKit 的动画覆盖在 SceneKit 上停止

Android native GLES 2.0 空白屏幕与 MVP 矩阵

javascript - Wavefront 文件到 WebGL 数组的转换在某处出错

ios - 绘制为 GL_POINTS(仅指定 2 个坐标)时是否可以在顶点旋转纹理?

java - java中用AEDT时区解析日期

java - 等待 onReceive 运行并停止

ios - 使用 Swift 进行图像处理具有随机效果

ios - 为什么 ViewController 类不需要遵守 NSObject 协议(protocol),而其他类需要遵守

java - 我的 ListView 没有填充父项