Blend4Web

Blend4Web — открытый фреймворк, предназначенный для создания и отображения интерактивной трёхмерной графики в браузерах. Blend4Web использует открытый пакет 3D-моделирования Blender для подготовки контента.

Blend4Web
Blend4Web Logo.png
Скриншоты демо-приложений
Скриншоты демо-приложений
Тип Инструментарий для интерактивной трёхмерной графики
Разработчик Триумф
Написана на JavaScript, Python, C, C++
Первый выпуск 28 марта 2014
Последняя версия 18.05.0
Состояние Активный
Лицензия GPLv3 или коммерческая
Сайт blend4web.com/ru

Разработан и выпущен в 2014 году российской фирмой «Триумф», которая также предоставляет коммерческую лицензию продукта (включающую примеры готовых приложений) и услуги по технической поддержке.

ОбзорПравить

Подготовка аудио-визуального контента для Blend4Web осуществляется в пакете 3D-моделирования и анимации Blender. Контент воспроизводится посредством WebGL, Web Audio и других стандартных браузерных технологий, без использования каких-либо расширений[1].

Фреймворк распространяется на условиях двойного лицензирования, под открытой GPLv3 и коммерческой лицензиями. Исходный код находится в репозитории на GitHub[2].

3D-сцена создаётся в Blender и экспортируется в виде файла в формате JSON и двоичного файла для последующей загрузки веб-приложением. Сцена может быть также экспортирована в виде единственного самодостаточного HTML-файла, в который упаковываются экспортируемые данные, пользовательский интерфейс веб-плеера и исполняемый код[3]. Экспорт в HTML-формате рассматривается как наиболее простой способ работы с Blend4Web[4]. Итоговый файл с минимальным размером порядка МБ может быть размещен на веб-странице с помощью стандартного элемента <iframe>[5]. Веб-приложения на основе Blend4Web могут быть развёрнуты в популярных социальных сетях, таких как Facebook[6] и ВКонтакте.

В состав программных компонентов Blend4Web входят библиотеки JavaScript, дополнение к Blender и набор инструментов для настройки параметров 3D-сцен, отладки и оптимизации.

Разработка Blend4Web начата московской компанией «Триумф» в 2010 году. Первый публичный релиз состоялся 28 марта 2014 года[7].

ОсобенностиПравить

Фреймворк содержит ряд компонентов, обычно присутствующих в игровых движках, включая систему позиционирования источников звука, физический движок (форк физического движка Bullet, портированный на JavaScript), систему анимации и слой абстракции для программирования игровой логики[8].

На каждый объект может быть назначено до 8 анимаций различного типа, включая скелетную и вершинную анимацию. Скорость и направление анимации, а также параметры систем частиц (размер, начальная скорость и количество) могут быть заданы посредством API[9].

Поддерживаются динамическая загрузка и выгрузка данных, карты освещения, имеется возможность симуляции подповерхностного рассеивания[10].

Имеются решения для рендеринга наружных сцен, включая симуляцию воздействия ветра, симуляцию воды, атмосферные эффекты. Работа указанного функционала продемонстрирована в демо-ролике «Ферма», в котором также присутствуют многочисленные анимированные неигровые персонажи, реализована возможность перемещения по локации с видом от первого лица, реализовано взаимодействие с объектами и управление транспортным средством[11].

Ввиду использования кроссбраузерной технологии WebGL, Blend4Web работает во всех основных[12] браузерах, в том числе на мобильных устройствах[13]. Тем не менее, в браузерах с экспериментальной реализацией стандарта WebGL, таких как Internet Explorer, возможности Blend4Web поддерживаются не полностью[14]. Существуют приложения, способные работать в операционной системе Tizen, в частности, на «умных» часах Samsung Gear S2[15].

Среди нетривиальных для браузерных фреймворков особенностей называются следующие: оптимизация методом комбинирования вызовов отрисовки, оптимизация методом отсечения скрытых объектов, вынесение физических расчетов в отдельный поток выполнения, симуляция поведения морских волн[16].

В версии 14.09 в Blend4Web реализована возможность реализации интерактивности в 3D-сценах посредством инструмента для визуального программирования. Инструмент напоминает редактор логики встроенного игрового движка Blender, в частности, в нём, как и в BGE, используются выстраиваемые в интерфейсе Blender визуальные логические блоки. Анимационные последовательности, созданные художником, проигрываются в ответ на взаимодействие пользователя с теми или иными трёхмерными объектами[17][18].

Начиная с версии 15.03 Blend4Web поддерживает присоединение двумерных HTML-элементов (например, информационных окон) к 3D-объектам (так называемые аннотации), а также копирование объектов во время работы приложения («инстанцирование», англ. instancing)[19].

Среди эффектов на основе постобработки поддерживаются светящиеся поверхности (англ. glow), засветка ярким светом (bloom), глубина резкости камеры, сумеречные лучи, размытие при движении и взаимное затенение (SSAO)[20].

Поддержка устройств виртуальной реальности была реализована в конце 2015 г. Работа шлема Oculus Rift обеспечивается экспериментальным API WebVR.[21]

Интеграция с BlenderПравить

Дополнение для Blender написано на Python и Си, и может быть скомпилировано для платформ Linux x86/x64, OS X x64 и MS Windows x86/x64.

Профиль настроек Blend4Web активируется в настройках аддона. При переключении в профиль происходит перестраивание интерфейса Blender с одновременным удалением всех неподдерживаемых настроек[22].

 
Меню переключения в профиль Blend4Web

Blend4Web поддерживает ряд специфичных для Blender функций, таких как узловой редактор материалов (инструмент для визуального программирования шейдеров)[23] и система частиц[24]. Также имеется начальная поддержка редактора нелинейной анимации (NLA) в составе пакета Blender, предназначенного для создания простых сценариев.

Для получения схожего визуального результата в редакторе и в браузере (WYSIWYG) пользователям рекомендуется переключаться в режим рендеринга GLSL, имеющегося в Blender[25].

Сравнение с аналогамиПравить

Blender Game EngineПравить

Как и встроенный игровой движок Blender (Blender Game Engine, BGE), Blend4Web загружает подготовленные в Blender данные сцен без использования какого-либо промежуточного редактора[4]. Приложения на основе Blend4Web предназначены для работы в браузерах, в то время как исполняемые файлы BGE запускаются вне браузеров[26][27]. API Blend4Web реализованы на JavaScript, в отличие от основанных на Python API встроенного движка Blender. Вместо визуального редактора логики BGE, неподдерживаемого в Blend4Web, в последнем предполагается использование стандартных подходов, принятых в веб-разработке.

UnityПравить

В Unity возможность экспорта в WebGL имеется с версии 5[28]. Реализация поддержки WebGL, тем не менее, носит экспериментальный характер, в частности, в WebGL-версии в ближайшей перспективе не планируется поддержка мобильных устройств, системы позиционирования источников звука, видеотекстур[29].

Three.jsПравить

WebGL-библиотека Three.js требует написания программного кода для выполнения тривиальных задач, что повышает порог вхождения и удлиняет обучение; в Blend4Web большая часть работ по подготовке онлайн-презентаций не требует программирования[30].

Известные случаи использованияПравить

НАСА разработало интерактивное веб-приложение к третьей годовщине со дня посадки марсохода Кьюриосити[31]. В приложении[32], созданном на основе Blend4Web, реализовано движение ровера, управление камерами и манипулятором, а также воспроизведены некоторые известные события миссии[33][34]. Приложение было представлено в начале секции WebGL на конференции SIGGRAPH 2015[35].

 
Experience Curiosity: ровер делает селфи
 
Experience Curiosity: обучающий режим
 
Experience Curiosity: режим свободного управления

ПримечанияПравить

  1. Blend4Web: the Open Source Solution for Online 3D. Mozilla Hacks. Дата обращения: 13 августа 2015.
  2. Blend4Web on GitHub. GitHub.com/TriumphLLC. Дата обращения: 11 августа 2014.
  3. Прахов, Андрей (Июль, 2015). «Blend4Web». Linux Format, стр. 20.
  4. 1 2 Blend4Web, an Interactive 3D Viewer. BlenderNation.com. Дата обращения: 11 августа 2014.
  5. Blend4Web: способ вставить 3D-содержание на веб-страницу с использованием WebGL (недоступная ссылка). Belursus.info. Дата обращения: 4 сентября 2014. Архивировано 26 июня 2015 года.
  6. Blender Models in Facebook. Dalai Felinto. Дата обращения: 11 сентября 2015.
  7. Официальный сайт Blend4Web - О проекте. Blend4Web.com. Дата обращения: 13 августа 2015.
  8. Представлен Blend4Web, движок для создания браузерных 3D-приложений. OpenNet.ru. Дата обращения: 18 июня 2015.
  9. Релиз движка для создания браузерных 3D-приложений Blend4Web 14.08. OpenNet.ru. Дата обращения: 13 августа 2015.
  10. Blend4Web update adds improved lighting and more. BlenderNation.com. Дата обращения: 13 августа 2014.
  11. The Farm. Chrome Experiments. Дата обращения: 11 сентября 2015.
  12. Can I use WebGL?. caniuse.com. Дата обращения: 15 августа 2014.
  13. HTML5, the 3D Web, and the Death of Plugins (недоступная ссылка). 3dspace.com. Дата обращения: 18 февраля 2016. Архивировано 15 февраля 2016 года.
  14. Blend4Web: енджин за създаване на браузърни 3D сцени и приложения. Kaldata: Software, Hardware and Game Reviews. Дата обращения: 4 сентября 2014.
  15. Real Time 3D watchfaces from Luxury Watches for the Gear S2. Tizen Experts. Дата обращения: 12 августа 2016.
  16. Cozzi, Patrick. WebGL Insights. CRC Press, 2015 ISBN 978-1-4987-1607-9.
  17. Blend4Web Update: Non Linear Animation and more. BlenderNation.com. Дата обращения: 29 сентября 2014.
  18. Выпущен фреймворк Blend4Web 14.09 (недоступная ссылка). digilinux.ru. Дата обращения: 29 сентября 2014. Архивировано 28 сентября 2014 года.
  19. Blend4web: annotations interactives et autres nouveautés (недоступная ссылка). Greg G.d.Bénicourt. Дата обращения: 29 мая 2015. Архивировано 14 мая 2016 года.
  20. Релиз движка для создания браузерных 3D-приложений Blend4Web 15.05. OpenNet.ru. Дата обращения: 18 июня 2015.
  21. Triumph releases Blend4Web 15.12. cgchannel.com. Дата обращения: 18 февраля 2016.
  22. Blend4Web – Must-Have for Blender Fans! (недоступная ссылка). 3ddey.com. Дата обращения: 29 мая 2015. Архивировано 1 июня 2015 года.
  23. Interactives 3D Web – Ist Das Die Zukunft?. 3d-magazin.eu. Дата обращения: 16 сентября 2016.
  24. 3D-Web-Applikationen mit Blend4Web erstellen. entwickler.de. Дата обращения: 29 мая 2015.
  25. Blend4Web: Exporter Facilement en HTML. BlenderLounge. Дата обращения: 17 июля 2015.
  26. Blender en tu Web: Blend4Web. PatrimonioVirtual.com. Дата обращения: 13 августа 2014.
  27. Blend4Web: Ferramenta publica projetos do Blender para Web. Allan Brito. Дата обращения: 29 мая 2015.
  28. Unity 5 Ships and Brings One Click WebGL Export to Legions of Game Developers. The Mozilla Blog. Дата обращения: 16 июня 2015.
  29. Why NASA Switched from Unity to Blend4Web. GameDev.Net. Дата обращения: 11 сентября 2015.
  30. The Good, The Bad and the WebGL-y. benchung.com. Дата обращения: 19 июня 2015. Архивировано 22 июня 2015 года.
  31. New Online Exploring Tools Bring NASA's Journey to Mars to New Generation. NASA. Дата обращения: 7 августа 2015.
  32. Experience Curiosity. NASA's Eyes. Дата обращения: 7 августа 2015.
  33. Prenez le controle de Curiosity avec Blend4Web (недоступная ссылка). Greg G.d.Bénicourt. Дата обращения: 16 сентября 2015. Архивировано 19 сентября 2015 года.
  34. Internet 3D: Take the Curiosity Rover for a Spin Right on the NASA Website. Technology.Org. Дата обращения: 12 августа 2015.
  35. Khronos Events - 2015 SIGGRAPH. Khronos. Дата обращения: 13 августа 2015.

СсылкиПравить