Получать новые статьи на свою почту
Популярные статьи
  • Что такое жёсткий диск и в чём его сходство с подробнее
  • Процессор — все точки над i подробнее
  • В чём прикол твёрдотельных накопителей? подробнее
  • Видеокарта — функции и суть данной железки подробнее
Поддержать проект
09.08.2017
Блог Дмитрия Вассиярова.
Автор: Рубрика:

Технология OpenGL в компьютерной графике

Лого

 

Здравствуйте, читатели.

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

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

 

Объяснение термина

Под двумя последними буквами в понятии OpenGL скрывается Graphics Library. Полностью оно переводится как «отрытая графическая библиотека». Почему открытая? Потому что разработанные на ней продукты можно открывать на любых платформах и результат будет один и тот же. Это может быть как графическая станция, так и суперкомпьютер.

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

Существуют реализации интерфейса для Windows, Unix-платформ, PlayStation 3 и Mac OS, которые предоставляются производителями видеокарт для возможности работы с ними. Но есть и открытая реализация для других графических карт — библиотека Mesa, которая хоть и считается неофициальной, но отлично справляется со своими задачами.

Появление

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

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

 

Таким образом, в 1992 году появилась первая OpenGL. Последнее ее обновление произошло в 2014 году до версии 4.5.

Основные функции

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

Несколько стандартных возможностей спецификации:

  • Применение В-сплайнов, необходимых для проведения кривых по опорным точкам;
  • Геометрические и растровые примитивы, из которых делаются любые объекты;
  • Управление цветами в режиме RGBA, или выбирая оттенки из палитры;
  • Модельная и видовая оптимизация для перемещения объекта в трехмерном пространстве;
  • Одинарная, двойная (для устранения мерцания в анимации) и тройная буферизация, которая в сравнении со второй быстрее выводит изображение;
  • Стирание невидимых линий и поверхностей;
  • Придание объектам текстуры, чтобы они выглядели реалистично;
  • Сглаживание линий путем изменения яркости и цвета пикселей возле них;
  • Расстановка и контроль источников света;
  • Добавление таких эффектов как туман, дым и пр.

 

Принцип действия

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

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

 

Дело в том, что спецификация призвана лишь отображать заданные вами команды. Управлять итоговой картинкой клавиатурой и мышью не получится. Также нет поддержки менеджера окон. Но это касается только стандартной библиотеки. Есть и другие — с расширенным функционалом.

Вспомогательные библиотеки

Широко используются 4 дополнительные библиотеки:

  • GLU. Она уже считается стандартом в работе с компьютерной графикой, поэтому поставляется в комплекте с OpenGL. Первая построена поверх второй, поэтому использует ее функции, только в упрощенной, но в то же время совершенной форме, а также может выполнять и более сложные задачи.
  • GLUT. Функционирует на различных операционках. Эта библиотека пригодиться вам, если захотите работать с окнами и устройствами ввода-вывода. Еще она позволяет распознавать такие непростые объекты как тетраэдры, конусы и даже, к примеру, чайники, всего одной командой.
  • GLAUX. Менее производительный аналог предыдущего варианта, созданный компанией Microsoft специально для работы в ОС Windows.
  • GLX. Еще одно расширение для Виндовс, предоставляющее как локальный, так и сетевой рендеринг.

 

Сравнение с Direct3D

Основным конкурентом OpenGL выступает Direct3D — продукт фирмы Майкрософт, созданный специально для написания компьютерных игр. На вопрос «что лучше» сложно ответить, потому что обе имеют свои преимущества. Все-таки приведу некоторое сравнение, чтобы вы сами могли сделать вывод, какая спецификация больше подойдет для ваших задач:

  • Direct3D работает только на платформах Intel и ОС Windows, а OpenGL успешно открывается не только на этой системе, но и на Unix, Linux, MacOS, IRIX, SunOS и пр.
  • Однако опенгл принимают не все графические карты, а директ лишен такого недостатка;
  • Также последний отличается лучшим объектно-ориентированного подходом.
  • Правда, кроссплатформенная спецификация проще к пониманию, поэтому новичкам для обучения основам трехмерной графики лучше выбирать ее.

 

На этом всё.

Не забудьте поделиться этой статьей со своими знакомыми, которые тоже увлекаются компьютерной графикой.

До скорого!

 

 

Этой статьей стоит поделиться
Получать новые статьи на свою почту

Оставить коментарий

:|:x:shock::oops::mrgreen::lol::idea::evil::cry::cool::arrow::???::?::!: