Blend4Web

Un article de Wikipédia, l'encyclopédie libre.
Blend4Web

Informations
Développé par Triumph LLC
Première version Voir et modifier les données sur Wikidata
Dernière version 17.08 ()[1]
État du projet Actif
Écrit en JavaScript, Python, C, C++
Type moteur 3D
Licence GPLv3 ou commerciale
Site web www.blend4web.com

Blend4Web est un framework libre et open source pour réaliser et publier des infographies 3D interactives dans un navigateur web.

Vue d'ensemble[modifier | modifier le code]

Le framework Blend4Web tire profit de Blender pour éditer les scènes en 3D. Le rendu du contenu se base sur les technologies WebGL, Web Audio et autres standards du Web, sans avoir besoin de plugins[2].

Blend4Web est sous une licence double: il est distribué sous la licence libre et open source GPLv3 et une licence non-libre ; le code source est hébergé sur GitHub[3].

Une scène 3D peut être préparée sur Blender et ensuite exportée via un fichier JSON et un fichier binaire pour les charger dans une application web. La scène peut être aussi exportée dans un seul fichier indépendant HTML, dans lequel les données exportées, le web player, le GUI et le moteur en lui-même sont compressés[4]. L'option HTML est considérée comme la plus simple façon d'utiliser Blend4Web[5]. Le fichier résultant, d'une taille signalée minimum de 1 Mb, peut être intégré dans une page web en utilisant un élément iframe HTML standard[6]. Les applications Blend4Web peuvent être déployées sur les réseaux sociaux notoires comme Facebook[7].

L'outil Blend4Web se compose de bibliothèques JavaScript, d'un Blender et d'un ensemble d'outils pour régler les paramètres de la scène 3D, déboguer et optimiser.

Le développement de Blend4Web a commencé en 2010 par une entreprise, Triumph, basée à Moscou. L'outil a été diffusé publiquement le 28 mars 2014[8].

Fonctions[modifier | modifier le code]

Le framework possède des composants typiques qu'on peut trouver dans les moteurs de jeu : système d'effets audio 3D, moteur physique (une branche de Bullet porté sur JavaScript, un système d'animation et une couche d’abstraction pour de la programmation logique de jeu[9].

Jusqu'à 8 types d'animations peuvent être assignés à un seul objet comprenant de l'animation par squelette et de l'animation par déformation (métamorphose) par vertex. La vitesse et la direction de l'animation (lecture arrière ou avant), comme les paramètres du système de particules (taille, vélocité initiale et nombre) peuvent être changés grâce à l'API[10].

Dans les fonctionnalités supportées se trouve le chargement et déchargement dynamique des scènes, la simulation de diffusion de surface (subsurface scattering) et l'illumination par image (IBL)[11].

Des options prêtes à l'emploi existent pour créer des environnements extérieurs comme l’interaction vent-feuillage, l'eau, les effets d'atmosphère et la simulation de lumière naturelle. Un des exemples montrant ces effets est la démonstration technique "The Farm", qui contient aussi des PNJ animés et la capacité de marcher, interagir avec des objets et conduire un véhicule en vue à la première personne[12].

En se basant sur l'API multi-navigateur de WebGL, Blend4Web fonctionne sur la majorité[13] des navigateurs web, même ceux sur mobile. Il existe cependant des mises en garde pour les navigateurs web supportant WebGL expérimentalement comme Internet Explorer[14].

Les fonctionnalités avancées incluent du draw call batching, de la détection de surface cachée, de la simulation physique en threading et de la simulation d'océan[15].

Dans la version 14.09, Blend4Web introduit la possibilité d'ajouter des interactions dans la scène 3D en utilisant un outil de langage de programmation visuel[16],[17]. L'outil est proche de l'éditeur logique du BGE : il utilise des blocs logiques intégrés dans Blender. Il permet de jouer des pistes d'animation autorisées par l'artiste quand l'utilisateur interagit avec l'objet 3D prédéfini[18].

Depuis la version 15.03, Blend4Web supporte les éléments HTML attachés (comme les fenêtres d'informations) sur les object 3D ("annotations") et la copie d'objets lors de l’exécution ("instanciation")[19].

Parmi les effets en post-traitement, les fonctionnalités suivantes sont supportées : lueur (glow), bloom, profondeur de champ, god rays, flou cinétique et screen space ambient occlusion[20].

Intégration à Blender[modifier | modifier le code]

Le plugin Blender est écrit en Python et C et peut être compilé sur les plateformes Linux x86/x64, OS X, x64 et Microsoft Windows.

Un profil spécifique de Blender peut être activé dans les paramètres du plugin. Quand ce profil est activé, l'interface de Blender change pour ne révéler que les paramètres pertinents pour Blend4Web[21].

Blend4Web supporte un ensemble de fonctionnalités spécifique à Blender comme l'éditeur nodal de matériaux (un outil de programmation visuel pour les shaders) et le système de particules[22]. Il existe un support basique de l'éditeur d'animation non-linéaire de Blender (NLA) pour créer de simples scénario.

Blend4Web est basé essentiellement sur le moteur de rendu temp-réel GLSL, qui est recommandé pour permettre l’édition WYSIWYG[23].

Comparaison avec les produits de même catégorie[modifier | modifier le code]

Blender Game Engine[modifier | modifier le code]

Comme le moteur de jeu de Blender, Blend4Web charge et lit directement les informations qui sont extraites de la scène Blender, sans avoir besoin d'un éditeur intermédiaire[5]. En étant un framework web, sa cible sont les navigateurs web tandis que l’exécutable BGE doit être lancé hors ligne[24],[25]. Blend4Web fournit sa propre API JavaScript qui est différent de l'API basé sur Python du BGE. Une approche "développement web" est proposé au lieu d'une combinaison de briques logiques et programmation par script Python utilisé dans le BGE.

Unity[modifier | modifier le code]

Unity a, depuis la version 5, une option pour exporter en WebGL[26]. Une enquête a été conduite par un développeur Unity pour comparer les deux moteurs[27]. Deux présentations web interactives d'un réacteur à double flux ont été créées en utilisant Unity et Blend4Web. Bien que l'auteur a remarqué que les deux moteurs produisaient des visuels de qualité similaire, la build Unity WebGL était d'une taille totale de 142 Mb (sans compression) pour 1.8 Mb (sans compression) pour la version HTML exporté par Blend4Web.

Selon la feuille de route du développement WebGL, Unity n'a pas prévu un support mobile, un système d'audio 3D et un support de textures vidéos dans un futur proche[28],[29].

Three.js[modifier | modifier le code]

La bibliothèque populaire WebGL, Three.js demande de la programmation pour de simples tâches, ainsi que plus de compétences de la part de l'utilisateur et donc a une courbe d'apprentissage très lente. Dans Blend4Web, la plupart du travail de préparation d'une présentation en ligne peut être réalisé sans l'aide de programmation[30],[31].

Utilisations notoires[modifier | modifier le code]

La NASA a développé une application web interactive appelé "Experience Curiosity" pour célébrer le 3e anniversaire de atterrissage du rover Curiosity sur Mars[32]. This Blend4Web-based app[33]. L'application permet de contrôler le rover, ses caméras, son bras articulé et de reproduire les événements importants de la mission Mars Science Laboratory[34],[35]. L'application a été présentée au début de la section WebGL au SIGGRAPH 2015[36]. Puis, elle a été porté sur Verge3D pour Blender en 2018, en apportant plusieurs améliorations de performances et quelques corrections de bogues.

Notes et références[modifier | modifier le code]

  1. « Релиз Blend4Web 17.08 »
  2. « Blend4Web: the Open Source Solution for Online 3D », Mozilla Hacks (consulté le )
  3. « Blend4Web on GitHub », GitHub.com/TriumphLLC (consulté le )
  4. Прахов, Андрей (Июль, 2015). "Blend4Web". Linux Format, стр. 20.
  5. a et b « Blend4Web, an Interactive 3D Viewer », BlenderNation.com (consulté le )
  6. « Blend4Web: способ вставить 3D-содержание на веб-страницу с использованием WebGL », Belursus.info (consulté le )
  7. « Blender Models in Facebook », Dalai Felinto (consulté le )
  8. « Blend4Web Official Site - About », Blend4Web.com (consulté le )
  9. « Представлен Blend4Web, движок для создания браузерных 3D-приложений », OpenNet.ru (consulté le )
  10. « Релиз движка для создания браузерных 3D-приложений Blend4Web 14.08 », OpenNet.ru (consulté le )
  11. « Blend4Web update adds improved lighting and more », BlenderNation.com (consulté le )
  12. « Blend4Web: "The Farm" - Demo einer kleinen virtuellen Welt », Echt Virtuell (consulté le )
  13. « Can I use WebGL? », caniuse.com (consulté le )
  14. « Blend4Web: енджин за създаване на браузърни 3D сцени и приложения », Kaldata: Software, Hardware and Game Reviews (consulté le )
  15. Cozzi, Patrick. WebGL Insights. CRC Press, 2015 (ISBN 978-1-49-871607-9).
  16. « Blend4Web Update: Non Linear Animation and more », BlenderNation.com (consulté le )
  17. « Выпущен фреймворк Blend4Web 14.09 », digilinux.ru (consulté le )
  18. « Blend4Web: обзор новинки отечественного софтопрома », Habrahabr.ru (consulté le )
  19. « Blend4web: annotations interactives et autres nouveautés », Greg G.d.Bénicourt (consulté le )
  20. (en) « Релиз движка для создания браузерных 3D-приложений Blend4Web 15.05 », OpenNet.ru (consulté le )
  21. « Blend4Web – Must-Have for Blender Fans! » [archive du ], 3ddey.com (consulté le )
  22. « 3D-Web-Applikationen mit Blend4Web erstellen », entwickler.de (consulté le )
  23. « Blend4Web: Exporter Facilement en HTML », BlenderLounge (consulté le )
  24. « Blender en tu Web: Blend4Web », PatrimonioVirtual.com (consulté le )
  25. « Blend4Web: Ferramenta publica projetos do Blender para Web », Allan Brito (consulté le )
  26. (en) « Unity 5 Ships and Brings One Click WebGL Export to Legions of Game Developers », The Mozilla Blog (consulté le )
  27. « Blend4Web vs Unity. Битва за Интернет », Habrahabr.ru (consulté le )
  28. « Почему в NASA отказались от Unity в пользу Blend4Web », Habrahabr.ru (consulté le )
  29. « WebGL Roadmap », Unity3D.com (consulté le )
  30. « The Good, The Bad and the WebGL-y » [archive du ], benchung.com (consulté le )
  31. « Что выбрать для 3D сайта – Three.js или Blend4Web? », Habrahabr.ru (consulté le )
  32. « New Online Exploring Tools Bring NASA's Journey to Mars to New Generation », NASA (consulté le )
  33. (en) « Experience Curiosity », NASA's Eyes (consulté le )
  34. « Prenez le contrôle de Curiosity avec Blend4Web », Greg G.d.Bénicourt Blog (consulté le )
  35. « Internet 3D: Take the Curiosity Rover for a Spin Right on the NASA Website », Technology.Org (consulté le )
  36. (en) « Khronos Events - 2015 SIGGRAPH », Khronos (consulté le )

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]