Есть ли хорошее эмпирическое правило, помогающее решить, когда целесообразно использовать Quartz 2D v. Core Animation v. OpenGL в приложении для iPhone / iPad? - PullRequest
1 голос
/ 07 октября 2010

Мне нужна эвристика для определения того, какой из основных графических методов для разработки iPhone / iPad будет наиболее подходящим решением для данной проблемы.

1 Ответ

5 голосов
/ 07 октября 2010

Простой ответ:

Кварц 2D

Используйте Quartz 2D для пользовательских элементов интерфейса, чтобы придать стилизованный вид вашему приложению.

Базовая анимация

Легче в использовании, хотя используется там, где производительность не критична. Отлично подходит для быстрой анимации. намного проще сделать эффект. Используется также с UIViews. Может быть использован для создания простых хороших игр. как понг или карточные игры.

OpenGL ES

Отлично подходит для игр, критичных к производительности. Немного сложнее, но как только вы сможете разобраться с доступными учебными пособиями и предоставляемыми фреймворками, вы сможете создавать игры с высокой производительностью. А также очень легко перенести их на другие устройства, кроме iphone, что довольно круто.

Длинный ответ:

Кварц 2D

Quartz 2D - это мощный API для 2D-графики для iOS. Он предлагает профессиональные двухмерные графические функции, такие как кривые Безье, преобразования и градиенты. Используйте Quartz 2D для пользовательских элементов интерфейса, чтобы придать стилизованный вид вашему приложению.

Базовая анимация

Core Animation, вероятно, является подходящим выбором для игр, где производительность не критична, таких как игры типа «Симон», «карточные игры» и «викторины». Кто-то может поспорить, что OpenGL ES проще в использовании, и, скорее всего, если вы учились, скажем ... DirectX ... но в Core Animation (и Quartz 2D) гораздо проще создавать простые эффекты, и их можно использовать с существующими UIViews.
Базовая анимация хороша для игр, где производительность не критична, и для новых программистов, вероятно, будет легко использовать, OpenGL нужен для всего остального. Core Animation использует OpenGL ES, это высокий уровень, и в моем тестировании отлично работает в ситуациях, когда производительность критична.

OpenGL ES

- ваш выбор для игр, критичных к производительности. По сути, это все что угодно, кроме простых, в основном статических игр, подобных тем, о которых я упоминал выше, таких как шутеры от первого лица, симуляторы полета и тому подобное. Вы также получаете дополнительное преимущество, заключающееся в возможности переноса ваших игр на устройства, отличные от iPhone, и в OpenGL есть много существующего игрового кода, который можно преобразовать другим способом. OpenGL ES - это открытый стандарт, который используется на растущем числе устройств, созданных различными компаниями, и поскольку CoreAnimation - это платформа более высокого уровня, построенная на основе OpenGL ES, она не может обеспечить почти такую ​​же производительность.

http://maniacdev.com/2009/07/iphone-game-programming-coreanimation-vs-opengl-es/ http://developer.apple.com/technologies/ios/graphics-and-animation.html

PK

...