Quartz 2D 还是 OpenGL ES?从长远来看,优点和缺点,迁移到其他平台的可能性
我很难决定是使用 Quartz2D 还是 OpenGL 来玩 iPad 游戏。大部分是 2D,但效果密集(10-30 个对象的同步照明效果,屏幕上的 10-20 个同步动画)。 到目前为止,假设我对这两种技术都同样愚蠢并且必须从头开始学习它们,我就来到了这个列表。 (我在这里阅读了几个关于 SO 的主题,名称如“Quartz 或 OpenGL”,但我仍然有一些问题)
Quartz:
- 更好的上市时间,因为 准备好使用像 UIView 这样的抽象, UIImageView、核心动画 抽象
Open GL ES
更接近硬件,因此性能更高 更好。
使用 OpenGL ES 实现的应用程序可以更轻松地迁移到 Android、MeeGo、Windows Phone 等。
使用
我的问题是:
- 重写需要多长时间 Quartz 2d 应用程序使用 OpenGL?让我们 说我花了 2 个人月来写 石英应用程序,我需要多少时间 需要重写吗? (请,只是一些主观意见,我会尝试以某种方式总结它们)
- 关于迁移到其他平台的容易程度,当使用OpenGL时,真的是这样吗? 或者,与 OpenGL 应用程序迁移相比,将 Quartz 应用程序从 iPhoneOS 迁移到 Android 时的工作量不会那么大? (易于迁移是非常重要的标准)
- 关于OpenGL,关于迁移,我应该选择OpenGL 1.1还是2.0? (Android通过NDK支持2.0,但不知道NDK的使用会增加还是减少迁移工作量)
I'm having a hard time deciding whether to go with Quartz2D or OpenGL for an iPad game. It will be 2D mostly, but effect-intense (simultaneous lighting effects for 10-30 objects, 10-20 simultaneous animations on the screen).
So far, assuming i'm equally dumb in both technologies and have to learn them from the ground, i came to this list. (I've read several topics here, on SO, with names like "Quartz or OpenGL", but i'm still left with some questions)
Quartz:
- Better time-to-market, because of
ready to use absractions like UIView,
UIImageView, CoreAnimation
abstractions
Open GL ES
Closer to hardware, thus, performance
is better.App, implemented with OpenGL ES can be easier migrated to Android, MeeGo, Windows Phone, etc.
My questions are:
- How time will it take to rewrite
Quartz 2d app to use OpenGL? Lets
say it took me 2 man-month to write
Quartz app, how much time will i
need to rewrite it? (Please, just some subjective opinions, i'll try to summarize them somehow) - Regarding the ease of migration to other platforms, when using OpenGL, is it really so?
Or efforts when migrating Quartz app from iPhoneOS to Android will be not so much bigger, compared to OpenGL app migration? (Ease of migration is quite important criterion) - Regarding OpenGL, should i go with OpenGL 1.1 or 2.0, concerning migration? (Android supports 2.0 through NDK, but dont know whether NDK's use will increase or decrease migration efforts)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用适用于 android 的跨平台 Cocos2d 框架
:
http://code.google.com/p/cocos2d-android/
Cocos2d对于 iPhone:
http://code.google.com/p/cocos2d-iphone/
use a framework that is cross platform
Cocos2d for android:
http://code.google.com/p/cocos2d-android/
Cocos2d for iphone:
http://code.google.com/p/cocos2d-iphone/
我只会回答您问题中与
Android
相关的部分,因为我对Quartz
没有任何了解OpenGL ES 1.1 和
OpenGL ES 1.1
之间的最大区别code>2.0是可编程管道在1.1
中有一个默认的固定管道,但是在2.0
中管道更改为可编程,因此您必须编写自己的管道甚至做一些照明。自您提出问题以来已经有很长一段时间了,现在Android
支持OpenGL ES 2.0
及其框架 API 以及NDK
。根据Android
仪表板查看使用率; 99.8% 的 Android 设备同时支持 2.0 版和 2.0 版。1.1
http://developer.android.com/about/dashboards/index.html#OpenGL
PS
OpenGL ES 3.0
是随Android 4.3
引入的,因此这些费率可能会发生变化。对于上述答案中与 Cocos2D 相关的问题,
Cocos2D-X
在Android
中使用OpenGL ES 2.0
,因此Cocos2D 也很可能用于Android
也使用OpenGL ES 2.0
。I will only answer
Android
related part of your question since I don't have any knowledge regardingQuartz
The biggest difference between
OpenGL ES 1.1
and2.0
is the programmable pipeline In1.1
there is a default fixed pipeline, but in2.0
the pipeline changed to programmable so you have to write youw own pipeline even to do some lighting. And there is a lot of time since your question, nowAndroid
supportsOpenGL ES 2.0
with its framework API also alongside withNDK
. For the usage rates according toAndroid
dashboard; 99.8 % ofAndroid
devices support bothversion 2.0
&1.1
http://developer.android.com/about/dashboards/index.html#OpenGL
P.S
OpenGL ES 3.0
is introduced withAndroid 4.3
so these rates might be subject to change.For Cocos2D related question in above answer,
Cocos2D-X
usesOpenGL ES 2.0
inAndroid
so it is also high probable thatCocos2D for Android
usesOpenGL ES 2.0
, too.