Quartz 2D 还是 OpenGL ES?从长远来看,优点和缺点,迁移到其他平台的可能性

发布于 2024-08-28 06:31:57 字数 811 浏览 8 评论 0原文

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

Quartz

  • 更好的上市时间,因为 准备好使用像 UIView 这样的抽象, UIImageView、核心动画 抽象

Open GL ES

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

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

    使用

我的问题是:

  1. 重写需要多长时间 Quartz 2d 应用程序使用 OpenGL?让我们 说我花了 2 个人月来写 石英应用程序,我需要多少时间 需要重写吗? (请,只是一些主观意见,我会尝试以某种方式总结它们)
  2. 关于迁移到其他平台的容易程度,当使用OpenGL时,真的是这样吗? 或者,与 OpenGL 应用程序迁移相比,将 Quartz 应用程序从 iPhoneOS 迁移到 Android 时的工作量不会那么大? (易于迁移是非常重要的标准)
  3. 关于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:

  1. 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)
  2. 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)
  3. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绅刃 2024-09-04 06:31:57

使用适用于 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/

想你只要分分秒秒 2024-09-04 06:31:57

我只会回答您问题中与 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-XAndroid 中使用 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 regarding Quartz

The biggest difference between OpenGL ES 1.1 and 2.0 is the programmable pipeline In 1.1 there is a default fixed pipeline, but in 2.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, now Android supports OpenGL ES 2.0 with its framework API also alongside with NDK. For the usage rates according to Android dashboard; 99.8 % of Android devices support both version 2.0 & 1.1
http://developer.android.com/about/dashboards/index.html#OpenGL

P.S OpenGL ES 3.0 is introduced with Android 4.3 so these rates might be subject to change.

For Cocos2D related question in above answer, Cocos2D-X uses OpenGL ES 2.0 in Android so it is also high probable that Cocos2D for Android uses OpenGL ES 2.0, too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文