Кварц 2D или OpenGL ES?Плюсы и минусы в перспективе, возможность миграции на другие платформы - PullRequest
5 голосов
/ 08 апреля 2010

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

Кварцевый

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

Открыть GL ES

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

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

Мои вопросы:

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

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

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

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

Cocos2d для iPhone:

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

1 голос
/ 03 августа 2013

Я отвечу только на 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.

...