Мир компьютерных технологий не стоит на месте и постоянно развивается и усложняется. В том числе и компьютерная графика, трёхмерное моделирование и анимация. Многие компании вынуждены постоянно обновлять программное обеспечение, из-за того что оно очень быстро устаревает, что зачастую ведёт к большим денежным затратам. В этой статье хотелось бы рассмотреть систему для 3D моделирования Blender – лидера на рынке бесплатного лицензионного ПО для трехмерного моделирования и анимации.
BLENDER – этапы развития
Для начала хотелось бы рассказать о самом продукте Blender.
Blender – программный продукт с открытым исходным кодом предназначенный для трёхмерного моделирования, анимации, рендеринга, композитинга и немного видеомонтажа.
Основные возможности:
– полигональное моделирование, сплайны, NURBS-кривые и поверхности;
– режим лепки (вместо выбора группы вершин, Режим скульптуры автоматически выбирает вершины в зависимости от того, где кисть, и изменяет их);
– система частиц (состоит из большого числа точек вместо граней, рёбер и вершин. Чаще всего применяется при создании «воздушных» эффектов);
– динамика твердых и мягких тел: жидкость, шерсть/волосы и т.д. (позволяет вершинам двигаться основываясь на законах физики, что позволяем им реагировать на ветер и гравитацию);
– скелетная анимация (возможность создать реалистично двигающихся персонажей);
– встроенные механизмы рендеринга и интеграция со сторонними визуализаторами (Программа поддерживает как собственный алгоритм просчета финального изображения, так и сторонние движки, обеспечивающие альтернативные методы анализа сцены);
– редактор видео;
– функции создания игр и приложений (Game Blender Engine).
Основными достоинствами этого программного обеспечения, являются распространение ПО на бесплатной основе (доступность), открытый код, кроссплатформенность (Windows, Linux, Web), широкий функционал. Так же имеется возможность создания игр с помощью встроенного редактора [5].
Из недостатков можно сказать лишь то, что в базовой поставке программного продукта, отсутствует документация по использования редактора.
Так же следует подчеркнуть один из важных моментов – это экспорт в Веб. Фреймворк WebGL Blend4Web, предоставляет возможность экспорта готовых сцен, в редакторе Blender, для воспроизведения во многих браузерах на текущий момент(Google Chrome, Opera и т.д.), без надобности установки каких-либо расширений [9].
И это только малая часть перечисленных возможностей. Благодаря поддержке пользователей со всего мира, программа успешно развивается и улучшается. Именно открытый код позволяет многим программистам писать плагины для этой программы, с целью улучшения качества выполняемых функций.
Развитие функциональных возможностей BLENDER
Начиная с ранних версий, Blender уже мог составить конкуренцию нынешним гигантам. В настоящий момент текущая версия редактора Blender – 2.79. И в неё входит большое количество функциональных возможностей. Но разработчики не останавливаются и продолжают развивать этот программный продукт. Например в дальнейшем они планируют внести в программу: рефакторинг графа зависимостей; повышенную гранулярность зависимостей; способность воспроизводить более сложную анимацию в реальном времени; управление используемыми в проекте ресурсами; улучшенное управление линковкой внешних файлов; новые системы физики; более обширное применение возможностей Bullet; возможный переход на OpenGL 3.0; поддержку внешних игровых движков и многое другое.
Недавно был релиз Blend4Web 17.10. В этом фреймворке сконцентрировано внимание на ряде основных нововведений таких, как: подготовка фундамента для значительной модернизации движка в будущем и устранение ошибок в работе движка. Начиная с этой версии, Blend4Web полностью поддерживает режим Side-By-Side и устройства дополненной реальности; включает улучшенные алгоритмы расчета окружающего освещения в Cycles-нодах Diffuse BSDF и Glossy BSDF и значительные улучшения средств визуального программирования [8].
Режим отображения Side by Side может пригодиться в различных ситуациях, прежде всего тогда, когда передача в режиме «настоящего» стереоизображения невозможна. В этом формате кадр делится на две части, с изображением сцены для левого и правого глаза. Например, многие телевизоры с поддержкой 3D позволяют восстанавливать стереоизображение из формата Side-by-Side даже при использовании самых простых кабелей HDMI. Наиболее важно, что такой формат изображения требуется для корректной работы ряда устройств виртуальной и дополненной реальности. Одним из устройств, работающих в таком режиме, являются очки дополненной реальности Epson Moverio BT-300[3].
В течении нескольких последних релизов в дополнение к системе нодовых материалов Internal Render, была реализована возможность использовать ноды рендера Cycles для настройки внешнего вида 3D-моделей. В конечном итоге программа предлагает художникам несколько способов описания материалов, каждый из которых будет иметь свои плюсы и минусы. Так, ноды Internal Render позволяют создавать произвольные материалы и иметь полный контроль над структурой шейдера и получаемым результатом. Cycles-ноды дают возможности художникам быстро публиковать контент без необходимости преобразования материалов[4]. В этом версии была начата подготовка к реализации полноценной PBR-модели описания материалов, для удобной работы пользователей. С учетом скорого выхода Blender 2.8 и рендера EEVEE разработчики остановились на том, что в Blend4Web будет осуществлён не просто metal-roughness PBR, a Диснеевская шейдерная модель и связанная с ней нода Principled BSDF рендера EEVEE. Это – дело будущего, но в рамках релиза 17.10, разработчики заложили в базу и разработали улучшенный вариант двух нод рендера Cycles – Diffuse BSDF и Glossy BSDF, лежащих в основе будущего убер-шейдера [1].
Модель фотоаппарата Nikon с применением Cycles-нодов
В сравнении с реализацией, представленной в 17.06, новая версия более качественно имитирует диффузное и зеркальное отражение с учетом окружающего освещения (environment lighting). Уже текущая реализация эффектов позволяет их использовать для публикации в веб достаточно сложных моделей, выполненных для Cycles.
Так же продолжается развитие средств визуального программирования – редактора нодовой логики. В этом релизе представлен ряд существенных нововведений.
Прежде всего, начиная с этой версии Blend4Web 17.10 позволяет не просто создавать логику пользовательского приложения в виде нодового дерева, но разбивать его на отдельные функции. Такой структурированный подход даёт возможность пользователям писать логику гораздо более компактно [6].
Нода Define Function позволяет задать новую функцию и описать ее входные и выходные параметры. Нода Call Function позволяет вызвать функцию в нужном месте, передав необходимые параметры. У пользователей, которые знакомых с нодой JS Callback, не вызовет никаких вопросов при использовании этих функций [2].
Также у пользователя есть возможность описать логику приложения, распределив отдельные функции по разным нодовым деревьям (на разных диаграммах). Для этого достаточно указывать правильное дерево при вызове функции.
В этой версии разработчики представили нод Switch, позволяющий простым образом организовывать ветвление алгоритма путём последовательной проверки нескольких условий. Больше не потребуется создавать гирлянды из нод Conditional Jump, всё это можно сделать более компактно [7].
Прочие нововведения. Как всегда, с выпуском нового релиза движок включает в себя большое количество мелких и не очень нововведений и изменений. Вот только некоторые из них. Разработчики устранили проблему, беспокоящую пользователей долгое время. Теперь, если у пользователя одновременно запущено несколько копий Blender, то аддон самостоятельно отслеживает то, в какой из них работает сервер Tornado, обслуживающий менеджер проектов. Если случайно эта копия Blender будет закрыта, то этот плагин автоматически перезапустит сервер Tornado, и пользователь сможет продолжить работать с менеджером проектов как будто ничего не произошло.
Начиная с этой версии Blend4Web поддерживает переменные не только скалярных типов, но и объектного.
Для работы с Blend4Web 17.10 рекомендуется использовать Blender 2.79. Это связано с усовершенствованиями редактора логики и использованием Datablock pointer properties. При использовании аддона с предыдущими версиями Blender это может вызывать некоторые проблемы совместимости.
Вывод
Подводя итоги можно сказать, что программный продукт Blender идеально подходит для создания проектов трёхмерного моделирования и анимации как для новичков, так и для специалистов в этой области. Благодаря распространению ПО на бесплатной основе, многие желающие могут писать собственные плагины и аддоны для упрощения работы в этом редакторе. Разработчики постоянно развивают этот программный продукт и с каждым новым релизом вносят новые функции, исправляют ошибки и многое другое. Blender смело можно приравнивать к гигантам на мировом рынке.