Статья опубликована в рамках: CIII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 08 июля 2021 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ИСПОЛЬЗОВАНИЕ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ В ГРАФИКЕ И ДИЗАЙНЕ
АННОТАЦИЯ
В данной статье рассмотрено использование информационных технологий и методов программирования для простого создания графических и дизайнерских работ.
Ключевые слова: OpenGL; GLSL; графика; дизайн; шейдер; визуальное программирование.
Как правило, дизайнеры и художники создают свои цифровые работы с помощью специализированного для этого программного обеспечения, такого как Blender (редактор для трёхмерного моделирования), Adobe Photoshop (графический редактор) или Adobe After Effects (редактор видео и анимационных эффектов). Однако в последнее время всё больше распространяется метод программирования визуальных эффектов с помощью специализированных языков (например, GLSL – англ. OpenGL Shading Language – язык шейдеров OpenGL) или средств визуального программирования. В данной статье мы рассмотрим примеры программ, созданных с помощью таких языков или средств.
Для начала рассмотрим понятие шейдера. Шейдер (англ. shader – затеняющий) – это программа, написанная на специализированном языке шейдеров (например, вышеупомянутый GLSL или HLSL, язык шейдеров от корпорации Microsoft, встроенный в пакет DirectX) и использующая определённые регистры графического процессора для рендеринга (англ. rendering – визуализация) графики. Программы, написанные на таком языке, определяют значение цвета для каждого пикселя на экране или рабочем пространстве. Шейдер может как самостоятельно отрисовывать всю сцену целиком, так и быть вспомогательным элементом, например, для настроек света, его отражения, поглощения или преломления от какой-либо поверхности. Последний метод часто используется в видеоиграх, а первый – для создания работ компьютерного искусства, например, для демосцены[1]. В некоторых случаях шейдеры также могут использоваться в качестве прикладных инструментов для рендеринга видео – например, они активно используются в программном продукте RenderMan, разработанном студией Pixar, и используемом как минимум с 1986 года (короткометражный мультфильм Luxo Jr.).
Для создания шейдеров необходимо программное обеспечение, способное транслировать текст, написанный на каком-либо языке шейдеров, в вызовы инструкций графического процессора. Зачастую такие программы уже входят в состав комплексов, активно использующих шейдеры (например, в игровых движках, таких как Unity, Unreal Engine и др.), однако возможно также использование отдельных программ, например, Bonzomatic, SHADERed или Shadertoy. Первый часто используют в специальных конкурсах по живому написанию шейдеров (так называемых Shader Showdown и Shader Jam) благодаря удобной синхронизации, специальному дизайну и некоторым встроенным возможностям). Последние два позволяют писать шейдеры прямо в веб-браузере с использованием WebGL (ответвление OpenGL, используемое для веб-браузеров).
Рисунок 1. Стандартный экран создания шейдера в Shadertoy по умолчанию
Достоинства использования шейдеров по сравнению с рендерингом картинки с помощью обычных графических или видео-редакторов очевидна – использование таких языков шейдеров, как GLSL или CG, позволяет запустить программу без предварительного рендеринга; это значит, что графическая составляющая будет отрисовываться в реальном времени. Это также означает, что конечный результат может отрисовываться неопределённое количество времени, а также им можно управлять (например, с помощью шейдеров можно заставить линию изгибаться определённым образом под ритм музыки), что делает этот способ довольно популярным,
При этом очевидны и недостатки. Во-первых, для рендеринга шейдера в реальном времени в достаточном количестве кадров в секунду, необходимо устройство с мощным графическим адаптером, при этом необходимая мощность зависит от сложности шейдера(-ов). При недостаточной мощности адаптера итоговый результат может быть либо недостаточно плавным, либо недостаточно качественным (в случае, если программа выполняет несколько прогонов одного и того же скрипта для увеличения детализации картинки). Во-вторых, не все графические адаптеры одинаковые и, следовательно, используют одинаковые регистры и одинаковые наборы инструкций, а значит, один и тот же шейдер может работать по-разному на адаптерах различных фирм или даже на различных чипах одной фирмы, особенно на более старых или более новых, однако с этой проблемой пытаются бороться, вводя унифицированные шейдерные модели, которые соединяют воедино как различные инструкции, так и различные типы шейдеров, среди которых чаще всего выделяют вершинные, геометрические и пиксельные.
Рисунок 2. Пример программы на языке GLSL. Narcissus by Prismbeings, под лицензией Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
Написание шейдеров – сложное дело. Языки шейдеров, как правило, используют сложные математические расчёты и, следовательно, могут не подходить для людей, не знакомых с математикой на высоком уровне. Поэтому был создан метод визуального программирования. Изначально под «визуальным программированием» понимался метод самостоятельного «рисования» интерфейса конечной программы, а свойства объектов, расположенных в интерфейсе, задавались самостоятельно. Однако также данный термин означает программирование на каком-либо языке программирования с помощью специально заготовленных блок-схем. Одним из языков такого визуального программирования, например, является Скретч (англ. Scratch), работающий на основе HTML5 и WebGL.
С течением времени стали появляться и программные продукты, нацеленные на работу с графикой с помощью визуального программирования. Такие программы в том числе могут работать с языками шейдеров, из которых и состоят объекты блок-схем (например, Notch, Tooll или Cables.gl; последний работает в веб-браузере с помощью WebGL). Зачастую всё в таких программах, начиная эффектами заднего плана, и заканчивая трёхмерными объектами, написано на языке шейдеров, однако также они позволяют использовать и заранее заготовленные объекты, например, 3D-модель или собственную текстуру.
Рисунок 3. Интерфейс cables.gl
Такие программы в основном состоят из нескольких частей – поля для расположения блоков и их связей, окна предпросмотра, окна для настройки определённого блока, а также окна с временной шкалой, на которой можно расположить изменения параметров блока для создания более сложной анимации.
В завершении данной статьи должен отметить, что использование информационных технологий, в частности, программного кода, в графике и дизайне как явление активно развивается. Использование языков шейдеров становится всё более доступным благодаря распространению визуального программирования, которые сами по себе становятся с каждым днём всё более простыми и технически совершенными. Впрочем, и сами языки шейдеров, как и технический процесс в плане более мощных графических процессоров, не стоят на месте, постоянно развиваясь, давая всё больший простор и постоянно повышая качество дизайнерских и художественных работ.
Список литературы:
- Wolff D. OpenGL 4 Shading Language Cookbook. 3rd ed./ D. Wolff. – Birmingham; Packt Publishing, Cop. 2018 – 472 p.
- The Book of Shaders на русском: сайт. – 2015. – URL: https://thebookofshaders.com/?lan=ru (дата обращения: 04.07.2021).
- Визуальное программирование [Электронный ресурс] // Википедия. Свободная энциклопедия. – Режим доступа: https://ru.wikipedia.org/wiki/Визуальное_программирование
[1] Демосцена – субкультура компьютерного искусства, специализирующегося на демо – программах, написанных с помощью языков программирования и выстраивающих специальный аудиовизуальный ряд в реальном времени.
дипломов
Оставить комментарий