Использование OpenGL ES 1.1 или 2.0 зависит от того, что вы хотите сделать в своем приложении, и от того, сколько устройств вам нужно, чтобы оно было совместимо. Все устройства iOS поддерживают OpenGL ES 1.1, где только iPhone 3G S и более новые устройства (iPhone 3G S, iPhone 4, iPad и iPod touch 3-го и 4-го поколения) поддерживают OpenGL ES 2.0. Тем не менее, все устройства iOS, которые Apple сейчас поставляет, совместимы с OpenGL ES 2.0. Процент устройств, которые не поддерживают OpenGL ES 2.0, падает каждый день. Все iPad поддерживают 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, видео для класса, который я преподавал по этому предмету, доступно в iTunes U , и я создал два примера приложений здесь и здесь .
Когда дело доходит до кроссплатформенной совместимости, шейдеры уже давно доступны на настольном OpenGL, поэтому все, что вы собираете с использованием OpenGL ES 1.1 или 2.0, должно быть достаточно переносимым для настольного компьютера.
Если вы можете выполнять рендеринг, который вы хотите в OpenGL ES 1.1, вы можете пойти по этому пути, чтобы обеспечить максимальную совместимость устройств. Тем не менее, значительное большинство используемых сегодня iOS-устройств поддерживают OpenGL ES 2.0 (сейчас я не могу найти статистику по этому вопросу, но она была основана на отгруженных единицах), и это число будет только расти со временем. OpenGL ES 2.0 позволяет вам реализовать некоторые потрясающие эффекты (см. Epic Citadel), которые могут помочь вам отличить ваше приложение от других.