石英 2D 或 OpenGL ES?从长远来看的利弊,迁移到其他平台的可能性

Posted

技术标签:

【中文标题】石英 2D 或 OpenGL ES?从长远来看的利弊,迁移到其他平台的可能性【英文标题】:Quartz 2D or OpenGL ES? Pros and cons in the long term, possibility of migration to other platforms 【发布时间】:2010-04-08 08:16:52 【问题描述】:

我很难决定是使用 Quartz2D 还是使用 OpenGL 来开发 iPad 游戏。它将主要是 2D,但效果强烈(10-30 个对象的同时照明效果,屏幕上同时显示 10-20 个动画)。 到目前为止,假设我在这两种技术上同样愚蠢并且必须从头开始学习它们,我来到了这个列表。 (我在这里阅读了几个关于 SO 的主题,名称为“Quartz 或 OpenGL”,但我仍有一些问题)

石英

更好的上市时间,因为 准备好使用像 UIView 这样的抽象, UIImageView, CoreAnimation 抽象

Open GL ES

更接近硬件,因此,性能 更好。

使用 OpenGL ES 实现的应用程序可以更轻松地迁移到 android、MeeGo、Windows Phone 等。

我的问题是:

    重写需要多长时间 使用 OpenGL 的 Quartz 2d 应用程序?让我们 说我花了 2 个人月来写 Quartz 应用程序,我会花多少时间 需要重写吗? (拜托,只是一些主观意见,我会尝试以某种方式总结它们) 关于迁移到其他平台的难易程度,在使用OpenGL的时候,真的是这样吗? 或者,与 OpenGL 应用程序迁移相比,将 Quartz 应用程序从 iPhoneOS 迁移到 Android 的工作量不会大很多? (易于迁移是非常重要的标准) 关于 OpenGL,关于迁移,我应该使用 OpenGL 1.1 还是 2.0? (Android通过NDK支持2.0,但不知道NDK的使用会增加还是减少迁移工作量)

【问题讨论】:

【参考方案1】:

使用跨平台的框架

Cocos2d 安卓版: http://code.google.com/p/cocos2d-android/

Cocos2d for iphone:

http://code.google.com/p/cocos2d-iphone/

【讨论】:

你知道吗,android用的OpenGL ES Cocos2d是什么版本的?【参考方案2】:

我只会回答Android你问题的相关部分,因为我对Quartz一无所知

OpenGL ES 1.12.0 最大的区别在于可编程流水线1.1 有一个默认的固定流水线,但是2.0 的流水线变成了可编程流水线,所以你必须编写自己的流水线才能做到一些照明。距离您的问题还有很多时间,现在Android 支持OpenGL ES 2.0,其框架API 也与NDK 一起支持。根据Android仪表板的使用率; 99.8% 的Android 设备同时支持version 2.01.1 http://developer.android.com/about/dashboards/index.html#OpenGL

P.S OpenGL ES 3.0Android 4.3 一起引入,因此这些费率可能会有所变化。

对于上述答案中的 Cocos2D 相关问题,Cocos2D-XAndroid 中使用了OpenGL ES 2.0,因此Cocos2D for Android 也很可能使用OpenGL ES 2.0

【讨论】:

以上是关于石英 2D 或 OpenGL ES?从长远来看的利弊,迁移到其他平台的可能性的主要内容,如果未能解决你的问题,请参考以下文章

Android - 使用 openGL ES 绘制 3D 然后 2D

使用 OpenGL ES 2.0 绘制 2D 图像

渲染到纹理 OpenGL ES 2.0

石英 2D 绘图崩溃

OpenGL ES 2.0 (iOS) 中的 2D 绘图

在 cocos2d 中使用 opengl-es 进行圆形裁剪