О OpenGL ES

Открытая библиотека графических функций (OpenGL) используется для визуализации 2D и 3D данных. Это - многоцелевая открыто-стандартная графическая библиотека, поддерживающая приложения для 2D и 3D создания цифрового контента, механической конструкции и архитектурного проекта, виртуального анализа прототипа, моделирования рейса, видеоигры и т.д., Вы используете OpenGL, чтобы сконфигурировать 3D графический конвейер и представить данные ему. Вершины преобразовываются и освещены, собраны в примитивы и растеризированы для создания 2D изображения. OpenGL разработан для перевода вызовов функции в графические команды, которые могут быть отправлены в базовое аппаратное обеспечение машинной графики. Поскольку это используемое оборудование выделено обработке графических команд, получение OpenGL обычно очень быстро.

OpenGL для Встроенных систем (OpenGL ES) является упрощенной версией OpenGL, устраняющего избыточную функциональность для обеспечения библиотеки, которую и проще изучить и проще реализовать в мобильном аппаратном обеспечении машинной графики.

../Art/cpu_gpu_2x.png../Art/cpu_gpu_2x.png

Сразу

OpenGL ES позволяет приложению использовать питание базового графического процессора. GPU на устройствах на iOS может выполнить сложное 2D и 3D получение, а также сложные вычисления штриховки на каждом пикселе в заключительном изображении. Если конструктивные требования приложения требуют самый прямой и всесторонний доступ, возможный к аппаратным средствам GPU, необходимо использовать OpenGL ES. Типичные клиенты для OpenGL , ES включает видеоигры и моделирования, представляющие 3D графику.

OpenGL ES является низким уровнем, фокусируемым на аппаратных средствах API. Хотя это обеспечивает самые мощные и гибкие инструменты обработки графики, это также имеет крутую кривую обучения и значительный эффект на общий замысел Вашего приложения. Для приложений, требующих высокоэффективной графики для более специализированного использования, iOS служит несколькими высокоуровневыми основами:

OpenGL ES Является Независимый от платформы API, Реализованный в iOS

Поскольку OpenGL , ES является API на базе С, это чрезвычайно переносимо и широко поддерживается. Как API C, это интегрируется беспрепятственно с Сенсорными приложениями Какао Objective C. OpenGL спецификация ES не определяет уровень работы с окнами; вместо этого, операционная система хостинга должна обеспечить функции для создания OpenGL контекст рендеринга ES, принимающий команды и кадровый буфер, где результаты любых команд рисования записаны в. При работе с OpenGL ES на iOS требует, чтобы использование классы iOS установило и представило поверхность получения и использование независимого от платформы API для рендеринга его содержания.

GLKit предоставляет поддержку поверхности и анимации получения

Представления и контроллеры представления, определенные платформой UIKit, управляют представлением визуального содержания на iOS. Платформа GLKit обеспечивает OpenGL осведомленные о ES версии этих классов. При разработке OpenGL приложение ES Вы используете a GLKView возразите для рендеринга OpenGL содержание ES. Можно также использовать a GLKViewController объект управлять Вашим представлением и поддержкой, анимирующей ее содержание.

Альтернатива Поддержек iOS Представляющие Цели

Помимо рисования содержания для заполнения всего экрана или части иерархии представления можно также использовать OpenGL объекты кадрового буфера ES для других стратегий рендеринга. iOS реализует стандартный OpenGL объекты кадрового буфера ES, которые можно использовать для рендеринга для внеэкранного буфера или для текстуры для использования в другом месте в OpenGL сцена ES. Кроме того, OpenGL ES на рендеринге поддержек iOS к Базовому Слою анимации ( CAEAGLLayer класс), который можно тогда объединить с другими уровнями для создания пользовательского интерфейса приложения или других дисплеев.

Приложения требуют дополнительной настройки производительности

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

Необходимо разработать приложение для эффективного использования OpenGL ES API. Как только Вы закончили создавать свое приложение, используйте Инструменты для точной настройки производительности приложения. Если Ваше приложение является имеющим узкие места в OpenGL ES, используйте информацию, предоставленную в этом руководстве для оптимизации производительности приложения.

XCode обеспечивает инструменты, чтобы помочь Вам улучшить производительность своего OpenGL приложения ES.

OpenGL ES не может использоваться в фоновых приложениях

Приложения, работающие в фоновом режиме, могут не вызвать OpenGL функции ES. Если Ваше приложение получает доступ к графическому процессору, в то время как это в фоновом режиме, это автоматически завершается iOS. Для предотвращения этого приложение должно сбросить любые незаконченные команды, ранее представленные OpenGL ES до того, чтобы быть перемещенным в фон, и избежать вызывать OpenGL ES, пока это не попятилось к переднему плану.

OpenGL ES устанавливает дополнительные ограничения для многопоточных приложений

Разработка приложений для использования в своих интересах параллелизма может быть полезной, чтобы помочь улучшить производительность приложения. Если Вы намереваетесь добавить параллелизм к OpenGL приложение ES, необходимо гарантировать, что это не получает доступ к тому же контексту от двух различных потоков одновременно.

Как использовать этот документ

Начните путем чтения первых трех глав: Контрольный список для Создания OpenGL Приложения ES для iOS, Конфигурируя OpenGL Контексты ES, Таща с OpenGL ES и GLKit. Эти главы обеспечивают обзор того, как OpenGL ES интегрируется в iOS и все подробности, необходимые для получения первого OpenGL приложения ES и работа устройства на iOS.

Если Вы знакомы с основами использования OpenGL ES в iOS, считайте Получение в Другие Места назначения Рендеринга и Многозадачность, Высокое разрешение и Другие Функции iOS важных специфичных для платформы инструкций. Разработчики, знакомые с использованием OpenGL ES в версиях iOS прежде 5.0, должны изучить Получение с OpenGL ES и GLKit для подробных данных о новых функциях оптимизации OpenGL разработка ES.

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

Если не указано иное, OpenGL примеры кода ES в этой книге предназначается для OpenGL ES 3.0. Вы, возможно, должны внести изменения для использования этих примеров кода с другим OpenGL версии ES.

Предпосылки

Перед деланием попытку использования OpenGL ES необходимо уже быть знакомы с общей архитектурой приложения для iOS. Посмотрите Начинают Разрабатывать приложения для iOS Сегодня.

Этот документ не является полным учебным руководством или ссылкой для межплатформенного OpenGL ES API. Для узнавания больше о OpenGL ES консультируйтесь со ссылками ниже.

См. также

OpenGL ES является открытым стандартом, определенным Khronos Group. Для получения дополнительной информации о OpenGL стандарт ES, консультируйтесь с их веб-страницей в http://www .khronos.org/opengles/.