Открыть главное меню

Blend4Web

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

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

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

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

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

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

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

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

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

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

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

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

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

Blender Game EngineПравить

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

UnityПравить

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

Three.jsПравить

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

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

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

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

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

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

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