Следует ли использовать OpenGL ES 1.1 или 2.0, зависит от того, что вы хотите делать в своем приложении и сколько устройств вам нужно для его совместимости. Все устройства iOS поддерживают OpenGL ES 1.1, где только OpenGL ES 2.0 поддерживают только iPhone 3G S и более новые устройства (iPhone 3G S, iPhone 4, iPad и iPod touch третьего и четвертого поколения). Однако все устройства iOS, которые Apple в настоящее время продает, совместимы с OpenGL ES 2.0. Процент устройств, которые не поддерживают OpenGL ES 2.0, падает каждый день. Все iPads поддерживают OpenGL ES 2.0 от запуска, поэтому у вас гарантированно будет поддержка, если вы нацелитесь на этот форм-фактор.
OpenGL ES 2.0 и 1.1 используют разные и довольно несовместимые конвейеры рендеринга. OpenGL ES 1.1 использует конвейер с фиксированной функцией, в котором вы загружаете данные геометрии и текстуры, настраиваете состояние освещения и т. Д., И пусть OpenGL обрабатывает остальное для вас. OpenGL ES 2.0 основан на программируемом конвейере, где вы поставляете вершинные и фрагментарные шейдеры для обработки специфики того, как ваш контент отображается на экране.
Поскольку вы должны написать свой собственный код для замены даже самых основных встроенных функций, использование OpenGL ES 2.0 для простых трехмерных приложений может потребовать больше усилий, чем OpenGL ES 1.1. Кроме того, большинство примеров приложений и записей, которые вы обнаружите там, будут ориентированы на 1.1, поэтому начать с API 2.0 будет сложнее.
Однако тот факт, что вы можете написать свои собственные процедуры для работы с вашей геометрией и текстурами и как они отображаются на экране, означает, что OpenGL ES 2.0 позволяет делать то, что просто невозможно (или потребуется огромное количество усилий) в OpenGL ES 1.1. К ним относятся такие эффекты, как закрашивание мультфильмов и освещение окклюзионной окклюзии, а также возможность сделать что-то интересное, например, разгружать массивные параллельные работы с графическим процессором.
Если вы заботитесь, чтобы увидеть некоторые примеры того, что вы можете сделать с OpenGL ES 2.0, видео для класса я преподавал на эту тему можно on iTunes U, и я создал два примера приложения here и here.
Когда дело доходит до кросс-платформенной совместимости, шейдеры уже давно доступны на настольном ПК OpenGL, поэтому все, что вы создаете с использованием OpenGL ES 1.1 или 2.0, должно быть достаточно переносимым на рабочий стол.
Если вы можете сделать рендеринг, который вы хотите в OpenGL ES 1.1, вы можете пойти таким образом, чтобы обеспечить максимальную совместимость устройств. Однако значительная часть используемых сегодня устройств iOS поддерживает OpenGL ES 2.0 (я не могу найти статистику прямо сейчас, но она была основана на отгруженных единицах), и это число будет только расти с течением времени. OpenGL ES 2.0 позволяет вам снимать некоторые потрясающие эффекты (см. Epic Citadel), которые могут помочь вам настроить ваше приложение отдельно от других.
Очень подробный ответ - Спасибо! – Constantin
В дополнение к этому классическому и удивительному ответу, по этой ссылке http://en.wikipedia.org/wiki/List_of_iOS_devices#Features прокрутите вниз до OpenGL ES для достойного отображения ситуации. – Fattie
@Brad Larson: через 1,5 года вы бы дали аналогичный ответ на этот вопрос, или вы принесете [GLKit] (http://developer.apple.com/library/ios/documentation/GLkit/Reference/GLKit_Collection/GLKit_Collection. pdf) как лучший выбор? –