Blend4Web | |
---|---|
| |
Скриншоты демо-приложений | |
Тип | Инструментарий для интерактивной трёхмерной графики |
Разработчик | Триумф |
Написана на | JavaScript, Python, C, C++ |
Первый выпуск | 28 марта 2014 |
Последняя версия |
|
Состояние | Активный |
Лицензия | GPLv3 или коммерческая |
Сайт | blend4web.com/ru |
Blend4Web — открытый фреймворк, предназначенный для создания и отображения интерактивной трёхмерной графики в браузерах. Blend4Web использует открытый пакет 3D-моделирования Blender для подготовки контента.
Разработан и выпущен в 2014 году российской фирмой «Триумф», которая также предоставляет коммерческую лицензию продукта (включающую примеры готовых приложений) и услуги по технической поддержке.
Подготовка аудио-визуального контента для Blend4Web осуществляется в пакете 3D-моделирования и анимации Blender. Контент воспроизводится посредством WebGL, Web Audio и других стандартных браузерных технологий, без использования каких-либо расширений[2].
Фреймворк распространяется на условиях двойного лицензирования, под открытой GPLv3 и коммерческой лицензиями. Исходный код находится в репозитории на GitHub[3].
3D-сцена создаётся в Blender и экспортируется в виде файла в формате JSON и двоичного файла для последующей загрузки веб-приложением. Сцена может быть также экспортирована в виде единственного самодостаточного HTML-файла, в который упаковываются экспортируемые данные, пользовательский интерфейс веб-плеера и исполняемый код[4]. Экспорт в HTML-формате рассматривается как наиболее простой способ работы с Blend4Web[5]. Итоговый файл с минимальным размером порядка 1 МБ может быть размещен на веб-странице с помощью стандартного элемента <iframe>
[6]. Веб-приложения на основе Blend4Web могут быть развёрнуты в популярных социальных сетях, таких как Facebook[7] и ВКонтакте.
В состав программных компонентов Blend4Web входят библиотеки JavaScript, дополнение к Blender и набор инструментов для настройки параметров 3D-сцен, отладки и оптимизации.
Разработка Blend4Web начата московской компанией «Триумф» в 2010 году. Первый публичный релиз состоялся 28 марта 2014 года[8].
В конце 2017 года основатели проекта Юрий и Александр Ковеленовы покинули компанию и начали разработку нового продукта Verge3D[9].
Фреймворк содержит ряд компонентов, обычно присутствующих в игровых движках, включая систему позиционирования источников звука, физический движок (форк физического движка Bullet, портированный на JavaScript), систему анимации и слой абстракции для программирования игровой логики[10].
На каждый объект может быть назначено до 8 анимаций различного типа, включая скелетную и вершинную анимацию. Скорость и направление анимации, а также параметры систем частиц (размер, начальная скорость и количество) могут быть заданы посредством API[11].
Поддерживаются динамическая загрузка и выгрузка данных, карты освещения, имеется возможность симуляции подповерхностного рассеивания[12].
Имеются решения для рендеринга наружных сцен, включая симуляцию воздействия ветра, симуляцию воды, атмосферные эффекты. Работа указанного функционала продемонстрирована в демо-ролике «Ферма», в котором также присутствуют многочисленные анимированные неигровые персонажи, реализована возможность перемещения по локации с видом от первого лица, реализовано взаимодействие с объектами и управление транспортным средством[13].
Ввиду использования кроссбраузерной технологии WebGL, Blend4Web работает во всех основных[14] браузерах, в том числе на мобильных устройствах[15]. Тем не менее, в браузерах с экспериментальной реализацией стандарта WebGL, таких как Internet Explorer, возможности Blend4Web поддерживаются не полностью[16]. Существуют приложения, способные работать в операционной системе Tizen, в частности, на «умных» часах Samsung Gear S2[17].
Среди нетривиальных для браузерных фреймворков особенностей называются следующие: оптимизация методом комбинирования вызовов отрисовки, оптимизация методом отсечения скрытых объектов, вынесение физических расчетов в отдельный поток выполнения, симуляция поведения морских волн[18].
В версии 14.09 в Blend4Web реализована возможность реализации интерактивности в 3D-сценах посредством инструмента для визуального программирования. Инструмент напоминает редактор логики встроенного игрового движка Blender, в частности, в нём, как и в BGE, используются выстраиваемые в интерфейсе Blender визуальные логические блоки. Анимационные последовательности, созданные художником, проигрываются в ответ на взаимодействие пользователя с теми или иными трёхмерными объектами[19][20].
Начиная с версии 15.03 Blend4Web поддерживает присоединение двумерных HTML-элементов (например, информационных окон) к 3D-объектам (так называемые аннотации), а также копирование объектов во время работы приложения («инстанцирование», англ. instancing)[21].
Среди эффектов на основе постобработки поддерживаются светящиеся поверхности (англ. glow), засветка ярким светом (bloom), глубина резкости камеры, сумеречные лучи, размытие при движении и взаимное затенение (SSAO)[22].
Поддержка устройств виртуальной реальности была реализована в конце 2015 г. Работа шлема Oculus Rift обеспечивается экспериментальным API WebVR.[23]
Дополнение для Blender написано на Python и Си, и может быть скомпилировано для платформ Linux x86/x64, OS X x64 и MS Windows x86/x64.
Профиль настроек Blend4Web активируется в настройках аддона. При переключении в профиль происходит перестраивание интерфейса Blender с одновременным удалением всех неподдерживаемых настроек[24].
Blend4Web поддерживает ряд специфичных для Blender функций, таких как узловой редактор материалов (инструмент для визуального программирования шейдеров)[25] и система частиц[26]. Также имеется начальная поддержка редактора нелинейной анимации (NLA) в составе пакета Blender, предназначенного для создания простых сценариев.
Для получения схожего визуального результата в редакторе и в браузере (WYSIWYG) пользователям рекомендуется переключаться в режим рендеринга GLSL, имеющегося в Blender[27].
Как и встроенный игровой движок Blender (Blender Game Engine, BGE), Blend4Web загружает подготовленные в Blender данные сцен без использования какого-либо промежуточного редактора[5]. Приложения на основе Blend4Web предназначены для работы в браузерах, в то время как исполняемые файлы BGE запускаются вне браузеров[28][29]. API Blend4Web реализованы на JavaScript, в отличие от основанных на Python API встроенного движка Blender. Вместо визуального редактора логики BGE, неподдерживаемого в Blend4Web, в последнем предполагается использование стандартных подходов, принятых в веб-разработке.
В Unity возможность экспорта в WebGL имеется с версии 5[30]. Реализация поддержки WebGL, тем не менее, носит экспериментальный характер, в частности, в WebGL-версии в ближайшей перспективе не планируется поддержка мобильных устройств, системы позиционирования источников звука, видеотекстур[31].
WebGL-библиотека Three.js требует написания программного кода для выполнения тривиальных задач, что повышает порог вхождения и удлиняет обучение; в Blend4Web большая часть работ по подготовке онлайн-презентаций не требует программирования[32].
НАСА разработало интерактивное веб-приложение к третьей годовщине со дня посадки марсохода Кьюриосити[33]. В приложении[34], созданном на основе Blend4Web, реализовано движение ровера, управление камерами и манипулятором, а также воспроизведены некоторые известные события миссии[35][36]. Приложение было представлено в начале секции WebGL на конференции SIGGRAPH 2015[37].
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .