Функции
Ниже перечислены основные функции OpenGL, о некоторых из них уже упоминалось. По ним вы можете судить об уровне языка и используемых примитивах.
- Альфа-канал. Позволяет делать предметы прозрачными, уровень прозрачности от 0 до 100%.
- Антиалиасинг. Сглаживание цветовых переходов, более реалистическое изображение.
- Буфер аккумулятора. Дополнительный буфер для 2,5-мерных эффектов, спецэффектов и глобального сглаживания по всей сцене.
- Градиентная заливка (gouraud shading). Линейно-градиентная заливка полигонов и отрезков.
- Графические примитивы. В пространстве: точка, отрезок, полигон, битовое изображение или изображение в другом формате.
- Двойная буферизация. Применяется для сглаживания эффектов анимации, когда новое изображение строится на заднем плане и потом отображается целиком. При этом пользователь не видит самого процесса создания изображения в несогласованном состоянии, например различных "изнанок объектов", "дыр в пространстве", "граней мира" и подобных нежелательных деталей.
- Заливка и освещенность фактур. К фактурам применяются эффекты освещенности и затенения в зависимости от характеристик "материала". В версии 1.2 реализованы блики поверх текстур.
- Маскирование. Можно маскировать некоторые цвета по трафарету.
- Массивы вершин. Новая возможность версии 1.5 - для повышения производительности задавать вершины массивами, а не отдельно.
- Обратная связь. Данные после растрирования могут быть возвращены в приложение вместо передачи из/в frame buffer или параллельно с ней.
- Пересечения. Автоматическое определение того, пересекает ли тот или иной объект заданный пространственный регион.
- Пиксельные операции. Масштабирование и другие аффинные преобразования битовых образов.
- Поддиапазоны. Возможность работать с частью матрицы вершин; применяется как метод оптимизации.
- Полиноминальные операции. Поддержка неравномерных рациональных би-сплайнов для описания кривых поверхностей.
- Полноцветное отображение. Представление в режиме RGBA, то есть тремя цветами и значением альфа-канала. Начиная с версии 1.2, поддерживаются также схемы BGRA и схемы с упакованными цветами для быстрой обработки популярных типов графических файлов.
- Пространственные преобразования. Масштабирование, вращение и перемещение объектов в пространстве.
- Режим индексированных цветов. Представление цветов не RGB-триплетами, а индексами в таблице цветов. Применяется для сжатия размена изображений "по глубине цвета" и эффектов быстрой замены одного цвета другим.
- Режим прямой отрисовки. Рисование по мере поступления команд, без использования списков отображения.
- Смешивание цветов. Позволяет устанавливать несколько режимов наложения одного изображения на другое. С помощью этой операции, в частности, реализуется альфа-канал и другие эффекты.
- Список отображения (display list). Пакет описания объектов сцены для предварительного разбора и оптимизации кэширования.
- Текстуры. Наложение двухмерных изображений на объемные поверхности для придания сцене реализма. Начиная с версии 1.2, поддерживаются трехмерные текстуры. Кроме того, начиная с этой же версии, поддерживается уровень текстур, позволяющий загружать их только до определенной степени детализации - в целях экономии памяти текстур.
- Z-буффер. Понятие об удалении объектов и их частей от наблюдателя, часть алгоритма удаления скрытых поверхностей.