Blend4Web

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

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

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

Обзор

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

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

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

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

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

Особенности

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

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

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

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

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

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

С версии 14.09 появился инструмент для визуального программирования интерактивности в 3D-сценах, напоминающий редактор логики движка Blender: используются визуальные блоки, размещаемые прямо в интерфейсе Blender. Анимации, созданные художником, проигрываются при взаимодействии пользователя со сценой[17][18].

С версии 15.03 реализована поддержка аннотирования (привязки HTML-элементов к 3D-объектам, например, окон с информацией) и инстанцирования объектов во время работы приложения[19].

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

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

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

Дополнение для Blender написано на Python и C, и может быть собрано для Linux x86/x64, macOS x64 и Windows x86/x64.

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

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

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

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

Blender Game Engine

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

Unity

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

Three.js

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

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

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

Примечания

  1. Blend4Web: the Open Source Solution for Online 3D (англ.). Mozilla Hacks. Дата обращения: 13 августа 2015. Архивировано 4 марта 2016 года.
  2. Blend4Web on GitHub (англ.). GitHub.com/TriumphLLC. Дата обращения: 11 августа 2014. Архивировано 5 мая 2016 года.
  3. Прахов, Андрей (июль 2015). «Blend4Web». Linux Format, стр. 20.
  4. 1 2 Blend4Web, an Interactive 3D Viewer (англ.). BlenderNation.com. Дата обращения: 11 августа 2014. Архивировано 15 февраля 2016 года.
  5. Blend4Web: способ вставить 3D-содержание на веб-страницу с использованием WebGL. Belursus.info. Дата обращения: 4 сентября 2014. Архивировано 26 июня 2015 года.
  6. Blender Models in Facebook (англ.). Dalai Felinto. Дата обращения: 11 сентября 2015. Архивировано 4 марта 2016 года.
  7. Официальный сайт Blend4Web - О проекте. Blend4Web.com. Дата обращения: 13 августа 2015. Архивировано 1 июля 2015 года.
  8. Представлен Blend4Web, движок для создания браузерных 3D-приложений. OpenNet.ru. Дата обращения: 18 июня 2015. Архивировано 3 марта 2016 года.
  9. Релиз движка для создания браузерных 3D-приложений Blend4Web 14.08. OpenNet.ru. Дата обращения: 13 августа 2015. Архивировано 3 марта 2016 года.
  10. Blend4Web update adds improved lighting and more (англ.). BlenderNation.com. Дата обращения: 13 августа 2014. Архивировано 15 февраля 2016 года.
  11. The Farm (англ.). Chrome Experiments. Дата обращения: 11 сентября 2015. Архивировано 5 октября 2016 года.
  12. Can I use WebGL? (англ.). caniuse.com. Дата обращения: 15 августа 2014. Архивировано 20 апреля 2015 года.
  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. Архивировано 3 марта 2016 года.
  15. Real Time 3D watchfaces from Luxury Watches for the Gear S2 (англ.). Tizen Experts. Дата обращения: 12 августа 2016. Архивировано 29 сентября 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. Архивировано 31 января 2016 года.
  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. Архивировано 3 марта 2016 года.
  21. Triumph releases Blend4Web 15.12 (англ.). cgchannel.com. Дата обращения: 18 февраля 2016. Архивировано 20 сентября 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. Архивировано 19 сентября 2016 года.
  24. 3D-Web-Applikationen mit Blend4Web erstellen (нем.). entwickler.de. Дата обращения: 29 мая 2015. Архивировано 3 марта 2016 года.
  25. Blend4Web: Exporter Facilement en HTML (фр.). BlenderLounge. Дата обращения: 17 июля 2015. Архивировано 17 июля 2015 года.
  26. Blender en tu Web: Blend4Web (исп.). PatrimonioVirtual.com. Дата обращения: 13 августа 2014. Архивировано 1 января 2015 года.
  27. Blend4Web: Ferramenta publica projetos do Blender para Web (порт.). Allan Brito. Дата обращения: 29 мая 2015. Архивировано 29 июня 2015 года.
  28. Unity 5 Ships and Brings One Click WebGL Export to Legions of Game Developers (англ.). The Mozilla Blog. Дата обращения: 16 июня 2015. Архивировано 3 марта 2016 года.
  29. Why NASA Switched from Unity to Blend4Web (англ.). GameDev.Net. Дата обращения: 11 сентября 2015. Архивировано 12 сентября 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. Архивировано 15 февраля 2016 года.
  32. Experience Curiosity (англ.). NASA's Eyes. Дата обращения: 7 августа 2015. Архивировано 6 августа 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. Архивировано 21 февраля 2016 года.
  35. Khronos Events - 2015 SIGGRAPH (англ.). Khronos. Дата обращения: 13 августа 2015. Архивировано 3 марта 2016 года.

Ссылки