Ответ 1
Использовать 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. К ним относятся эффекты, такие как закрашивание мультфильмов и освещение окклюзионной окклюзии, а также позволяющие вам делать что-то интересное, например, выгружать массивные параллельные работы на GPU.
Если вы хотите увидеть некоторые примеры того, что вы можете сделать с OpenGL ES 2.0, видео для класса, который я преподавал по этому предмету, доступно на iTunes U и Я создал два примера приложений здесь и здесь.
Когда дело доходит до кросс-платформенной совместимости, шейдеры уже давно доступны на настольном OpenGL, поэтому все, что вы создаете с использованием OpenGL ES 1.1 или 2.0, должно быть достаточно переносимым на рабочий стол.
Если вы можете сделать рендеринг, который вы хотите в OpenGL ES 1.1, вы можете пойти таким образом, чтобы обеспечить максимальную совместимость устройств. Тем не менее, значительная часть используемых сегодня устройств iOS поддерживает OpenGL ES 2.0 (я не могу найти статистику прямо сейчас, но она была основана на отгруженных единицах), и это число будет только расти с течением времени. OpenGL ES 2.0 позволяет вам снимать некоторые потрясающие эффекты (см. Epic Citadel), которые могут помочь вам настроить ваше приложение отдельно от других.