Кварц 2D или OpenGL ES? Плюсы и минусы в долгосрочной перспективе, возможность перехода на другие платформы

Мне трудно решить, использовать ли Quartz2D или OpenGL для игры на iPad. В основном это будет 2D, но с интенсивным эффектом (одновременное освещение 10-30 объектов, 10-20 одновременных анимаций на экране). До сих пор, предполагая, что я одинаково глуп в обеих технологиях и должен изучать их с нуля, я попал в этот список. (Я прочитал несколько тем здесь, на SO, с такими именами, как «Quartz или OpenGL», но у меня все еще остались вопросы)

Кварц:

  • Лучшее время выхода на рынок благодаря готовым к использованию абстракциям, таким как абстракции UIView, UIImageView, CoreAnimation

Open GL ES

  • Ближе к оборудованию, следовательно, производительность лучше.

  • Приложение, реализованное с помощью OpenGL ES, можно легко перенести на Android, MeeGo, Windows Phone и т. Д.

Мои вопросы:

  1. Сколько времени потребуется, чтобы переписать приложение Quartz 2d для использования OpenGL? Допустим, мне потребовалось 2 человеко-месяца, чтобы написать приложение Quartz, сколько времени мне понадобится, чтобы его переписать? (Пожалуйста, лишь несколько субъективных мнений, постараюсь как-нибудь их обобщить)
  2. Что касается простоты перехода на другие платформы при использовании OpenGL, так ли это на самом деле? Или усилия при переносе приложения Quartz с iPhoneOS на Android будут не намного больше, чем при миграции приложения OpenGL? (Легкость миграции - довольно важный критерий)
  3. Что касается OpenGL, следует ли мне использовать OpenGL 1.1 или 2.0 в отношении миграции? (Android поддерживает 2.0 через NDK, но не знаю, увеличит или уменьшит использование NDK усилия по миграции)

person fspirit    schedule 08.04.2010    source источник


Ответы (2)


использовать кроссплатформенный фреймворк

Cocos2d для Android: http://code.google.com/p/cocos2d-android/ < / а>

Cocos2d для iphone:

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

person Fred Grott    schedule 08.04.2010
comment
Вы знаете, какая версия OpenGL ES Cocos2d для Android использует? - person fspirit; 08.04.2010

Я отвечу только на Android часть вашего вопроса, так как я ничего не знаю о Quartz

Самая большая разница между OpenGL ES 1.1 и 2.0 - это программируемый конвейер. В 1.1 есть фиксированный конвейер по умолчанию, но в 2.0 конвейер изменился на программируемый, поэтому вам придется написать собственный конвейер даже для некоторого освещения. И прошло много времени с момента вашего вопроса, теперь Android поддерживает OpenGL ES 2.0 со своим API фреймворка также вместе с NDK. Для ставок использования согласно Android приборной панели; 99,8% Android устройств поддерживают как version 2.0, так и 1.1 http://developer.android.com/about/dashboards/index.html#OpenGL

P.S OpenGL ES 3.0 вводится с Android 4.3, поэтому эти ставки могут быть изменены.

Для вопроса, связанного с Cocos2D в приведенном выше ответе, Cocos2D-X использует OpenGL ES 2.0 в Android, поэтому также высока вероятность того, что Cocos2D for Android также использует OpenGL ES 2.0.

person Onur A.    schedule 03.08.2013