О OpenGL для OS X

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

../art/cpu_gpu.jpg

Сразу

OpenGL является отличным выбором для графической разработки на платформе Macintosh, потому что это предлагает следующие преимущества:

OpenGL является независимый от платформы API на базе С

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

Спецификация OpenGL не обеспечивает собственный уровень работы с окнами. Это полагается на функции, определяемые OS X для интеграции получения OpenGL с системой управления окнами. Ваше приложение создает OS X контекст рендеринга OpenGL и присоединяет цель рендеринга к нему (известный как drawable объект). Контекст рендеринга управляет изменения состояния OpenGL и объекты, создаваемые вызовами к OpenGL API. drawable объект является конечным местом назначения для команд рисования OpenGL и обычно связывается с окном Cocoa или представлением.

Различные места назначения рендеринга требуют различных команд установки

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

OpenGL на Macs существует в неоднородной среде

Macs поддерживают различные типы графических процессоров, каждого с различными возможностями рендеринга, поддерживая версии OpenGL от 1.x до OpenGL 3.2. При создании контекста рендеринга приложение может принять широкий диапазон средств рендеринга, или оно может ограничить себя устройствами с определенными возможностями. Как только у Вас есть контекст, можно сконфигурировать, как тот контекст выполняет команды OpenGL.

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

OpenGL помогает приложениям использовать питание графических процессоров

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

Когда Вы готовы оптимизировать производительность своего приложения, Apple обеспечивает и и специфичные для OpenGL профильные инструменты общего назначения, упрощающие изучать, где Ваше приложение проводит свое время.

Параллелизм в приложениях OpenGL требует дополнительного усилия

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

Настройка производительности позволяет Вашему приложению обеспечивать исключительный пользовательский опыт

Как только Вы улучшили производительность своего приложения OpenGL и использовали в своих интересах параллелизм, поместили часть освобожденной вычислительной мощности для работы на Вас. Более высокие текстуры разрешения, подробные модели, и более сложное освещение и штриховка алгоритмов могут улучшить качество изображения. Полная сцена, сглаживающаяся на современном аппаратном обеспечении машинной графики, может устранить многие «неровности», распространенные на более низких изображениях разрешения.

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

Если Вы никогда не программировали в OpenGL на Mac, необходимо считать эту книгу полностью, начиная с OpenGL на Платформе Mac. Критическая терминология Mac определяется в той главе, а также в Глоссарии.

Если Вы уже имеете приложение OpenGL, работающее на Mac, но еще не обновили его для OS X v10.7, считайте Renderer Выбора и Buffer Attributes, чтобы изучить, как выбрать профиль OpenGL для Вашего приложения.

Чтобы узнать, как обновить существующее приложение OpenGL для высокого разрешения, посмотрите Оптимизацию OpenGL для Высокого разрешения.

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

Предпосылки

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

Прежде, чем считать этот документ, необходимо быть знакомы с окнами Cocoa и представлениями, как представлено в Руководстве по программированию Руководства по программированию и Представления Окна.

См. также

Сохраните эти справочные документы удобными, поскольку Вы разрабатываете свою программу OpenGL для OS X:

Веб-сайт Основы OpenGL, http://www .opengl.org, предоставляет информацию о командах OpenGL, Рабочей группе OpenGL Khronos, требованиях логотипа, новостях OpenGL и многих других темах. Это - сайт, который Вы захотите посетить регулярно. Среди многих ресурсов это обеспечивает, следующее важные справочные документы для разработчиков OpenGL: