ВЫБОР ИНСТРУМЕНТОВ ДЛЯ РАБОТЫ С КОМПЬЮТЕРНОЙ ГРАФИКОЙ

Труханов А.С.

студент 2 курса магистратуры

ФГБОУ ВО ПГУТИ, г. Самара

Лиманова Н.И.

Профессор, д.т.н.

ФГБОУ ВО ПГУТИ, г. Самара

 

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

         Ключевые слова: компьютерная графика, графическая библиотека, трехмерная компьютерная графика, программный интерфейс

 

На сегодняшний день для организации трехмерного моделирования существует достаточное количество инструментов. Одним из наиболее известных инструментов является графическая библиотека OpenGL
(Open Graphics Library). Она представляет собой программный интерфейс программный интерфейс, реализующий вычислительное взаимодействие с аппаратной частью компьютерных систем, отвечающих за обработку  графики, и обеспечивающий исполнение операций отображения на графическом экране. Этот интерфейс, разработанный Silicon Graphics, состоит из сотен функций, предоставляющих широкие возможности от отображения точек и сегментов до покрытия текстур на трехмерные объекты. Преимущество OpenGL заключается в том, что библиотека не зависит от используемого оборудования, поэтому не является принципиальным выбор процессорной архитектуры, на которой разрабатывается графическое приложение. Однако разработчик должен либо напрямую использовать функции операционной системы, на которой осуществляется построение приложения (Xwindow, например, для Unix), для обращения к оборудованию, или использовать  программные функции специальных библиотек, предназначенных для организации взаимодействия средств
OpenGL с операционной системой.

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

         Так известными представителями таких графических библиотек являются GLUT  и GLFW.

Первая библиотека является более ранним представителем такого рода инструментов графической разработки и расшифровывается, как  OpenGL Utility Toolkit. Она развивалась практически параллельно с  OpenGL , так была разр.

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

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

Таким образом, у разработчиков появляется задача по выбору необходимой библиотеки для работы с контекстом OpenGL, определению подходов к разработке.

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

С другой стороны библиотека GLFW является более современным представителем механизмов по работе с контекстом трехмерной графики.
Она воплощает в себе только последние достижения в этой области и
не наследует принципы и подходы старых версий стандарта трехмерной графики
OpenGL. Данная библиотека как действующий проект имеет современный сайт (http://www.glfw.org)  с документацией и активным форумом, где обсуждаются актуальные проблемы. Также на сайте представлен алгоритм, который позволяет из исходных фалов получить динамически подключаемые файлы, которые необходимы, если среда разработки не может работать с уже представленными заранее скомпилированными разработчиками фалами библиотеки.  Так на сайте указано, что получить рабочие файлы библиотеки можно для большинства современных сред и компиляторов, таких как Visual С++, MinGW, а также для среды Xcode   компании Apple.

         В свою очередь у библиотеки GLUT имеется современное ответвление в виде библиотеки под названием freeglut, развитие которой велось энтузиастами. Она была доработана по сравнению с оригинальными версиями GLUT. У данного проекта есть сайт (http://freeglut.sourceforge.net), согласно которому последняя редакция была выпущена в 2015 году, что говорит об отсутствии шагов по дальнейшему развитию на протяжении для тельного срока. Также можно отметить, что сильно упрощена структура сайта, и не все вопросы по работе с библиотекой подробно описаны на страницах. У начинающих разработчиков это может вызвать ряд неудобств.  Однако последняя выпущенная версия этой библиотеки датируется 2015 годом, что говорит о прекращении стабильного развития.

Подводя итоги, можно отметить, следующие особенности представленных библиотек:

GLUT(freeglut):

·        кроссплатформенная библиотека для работы с компьютерной графикой;

·        существует столько же, сколько и сама технология OpenGL;

·        практически не развивается в последнее время;

·        для начинающих разработчики могут столкнуться с трудностями при внедрении;

GLFW:

·        является современной кроссплатформенной библиотекой для работы с компьютерной графикой;

·        активно развивается и поддерживает современные стандарты

·        имеет подробно описанную документацию и большое сообщество пользователей, что облегчает внедрение.

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

Список литературы:

1.     OpenGL et GLUT Une introduction. [Электронный ресурс] – Режим доступа: http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.304.6498&rank=13

2.     Learn OpenGL. [Электронный ресурс] – Режим доступа: https://learnopengl.com

3.     Wikipedia. Freeglut. [Электронный ресурс] – Режим доступа:https://ru.wikipedia.org/wiki/Freeglut