Blend4Web

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Blend4Web
Logo

Captures d'écran de démos Blend4Web
Captures d'écran de démos Blend4Web

Développeur Triumph LLC
Première version Voir et modifier les données sur Wikidata
Dernière version 17.04 ()[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 open source pour créer et publier des infographies 3D intéractives 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 besoins de plug-ins[2].

Blend4Web est sous une licence double: il est distribué sous une licence open source GPLv3 et une licence commerciale; 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 mutli-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]

Menu pour changer le profil en Blend4Web.

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écutableBGE 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 surMars[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].

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

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

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]