Определение

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

Космический театр в Hayden Planetarium, оснащенный рабочей станцией SGI Onyx2 с 28 процессорами и семью визуальными подсистемами InfiniteReality2, создает грандиозную трехмерную модель Млечного Пути

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

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

OpenGL — свободно распространяемая библиотека стандартизованных подпрограмм для функций трехмерной графики, каждая из которых предполагает решение сложных математических уравнений и выполнение объемных вычислений.

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

Кроссплатформенные возможности

OpenGL не указывает, какую именно операционную систему или оконную среду следует использовать. Таким образом, с этой библиотекой можно работать на ПК с Microsoft Windows, на компьютерах Macintosh, на рабочих станциях под управлением ОС Unix и даже на суперкомпьютерах, таких как машины SGI, с помощью которых создаются картины звездного неба в планетарии Hayden Planetarium в Нью-Йорке.

SGI выпустила OpenGL в 1992 году и передала ее независимому совету OpenGL Architecture Review Board (ARB).

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

OpenGL представляет собой сочетание аппаратных и программных решений. «Мы предлагаем полностью программную реализацию OpenGL, — заметил Меннел. — Она работает, но чересчур медленно».

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

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

Недорогие платы ускорителей графики, подходящие для игр, могут стоить около 700 долл. Высокоуровневые системы автоматизированного проектирования, предполагающие выполнение операций моделирования твердых тел, требуют использования плат старшего класса, которые стоят около 3 тыс. долл.

Новое применение

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

Как отметил аналитик GartnerGroup Луис Летмен, по мере совершенствования и удешевления аппаратного и программного обеспечения для пространственной графики, трехмерная визуализация и моделирование все активнее используются потребителями.

В финансовом управлении американского Агентства здравоохранения среда для анализа данных помогает выявлять подозрительные медицинские счета и методы лечения. Она создана с помощью MineSet — пакета инструментальных средств добычи данных и визуализации разработки SGI, в котором применяется OpenGL. А в Военно-морском флоте США используют OpenGL Performer — программный интерфейс компании SGI для создания авиатренажеров на основе технологий виртуальной реальности.


DirectX догоняет OpenGL

OpenGL, возможно, самая старая, самая популярная и самая совершенная графическая библиотека, но сегодня с ней успешно соперничает DirectX, разработанная корпорацией Microsoft.

«Дело не в том, что Microsoft ставит своей целью победить SGI, — заметил Роб Эндерле, аналитик Giga Information Group. — Они понимают, что спрос на такие системы есть, и с завидным упорством стремятся его удовлетворить».

Участники совета ARB встречаются каждый квартал. Но добавление новых функций в OpenGL, по мнению Билла Меннела, происходит очень медленно, поскольку для этого необходим консенсус.

С другой стороны, как подчеркнул Эндерле, Microsoft способна реализовать новые возможности намного быстрее, чем SGI.

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

«Но как только DirectX будет перенесен на игровые платформы и механизм nVidia, который должен появиться вскоре, библиотеке OpenGL станет намного труднее оставаться единоличным лидером», — считает Эндерле.

Если SGI не продумает свою стратегию, то, как считает Эндерле, года через три OpenGL может окончательно утратить свою популярность. «DirectX в конечном итоге будет использоваться на суперкомпьютерах, — заметил он. — SGI может первой пойти в этом направлении и получить определенную фору либо отказаться и проиграть».

Поделитесь материалом с коллегами и друзьями