Archives par étiquette : configurateur

De l’avenir radieux de WebGL

Cet article a été écrit en réponse à un récent article paru sur developpez.com : Le WebGL a t-il un avenir.

ça commence mal…

Le ton du titre suscite déjà le doute quant à la partialité de l’auteur.

WebGL est la spécification d’une bibliothèque graphique 3D au même niveau que OpenGL ou Direct3D. Celle-ci repose sur OpenGL ES 2.0 (la spécification pour l’embarqué de OpenGL) et permet de créer des pages Internet intégrant du contenu 3D. Ainsi, à l’aide de HTML 5 et du Javascript vous pouvez afficher un rendu accéléré par la carte graphique et bénéficiant donc de la puissance du GPU.

WebGL n’est pas une bibliothèque graphique 3D. La bibliothèque 3D utilisée par WebGL est OpenGL ES2.0, et parfois les appels vers cette bibliothèques sont transcrits en DirectX via Angle, notamment sous Windows. WebGL est un binding, soit une liaison entre Javascript et OpenGL ES2. Il permet simplement d’utiliser OpenGL ES via javascript.

WebGL permet d’aller bien plus loin qu’afficher du contenu 3D sur des pages internet. En effet depuis le VRML de l’eau a coulé sous les ponts. WebGL permet de créer des applications interactives 3D dans le navigateur : des jeux, des configurateurs 3D, des interfaces de navigation, de la réalité augmentée, …

A l’aide d’HTML5 et de javascript il est effectivement possible d’afficher du rendu accéléré par la carte graphique : sur un navigateur moderne tout est accéléré par le GPU. Mais WebGL ne fait pas partie du standard HTML5. HTML5 est un standard normalisé par le W3C, consortium industriel spécialisé dans le web, tandis que WebGL est spécifié par le Khronos Group, consortium industriel spécialisé dans l’accélération matérielle, et pas moins légitime que le précédent (même si son nom est moins hype et fait moins branché que le World Wide Web Consortium).

 

Le support

Actuellement, les principaux navigateurs présents sur le marché disposent du support de WebGL :

Firefox (6 juillet 2010)
Google Chrome(3 février 2011)
Safari (20 juillet 2011)
Opera (14 juin 2012)
Internet Explorer (17 octobre 2013).
les versions mobiles de Firefox, Opera et du navigateur de Blackberry supportent également WebGL.

L’information est plutôt approximative. Pour des statistiques détaillées des support il vaut mieux se fier à caniuse.com/webgl. Il est nécessaire de préciser que bien que Safari ai implémenté WebGL précocement, il a fallu attendre la version 8 du navigateur pour que WebGL soit activé par défaut (sortie après IE11 dont l’activation est par défaut). WebGL sera également compatible avec la version 8 d’iOS Safari, et il l’est déjà avec les dernières moutures d’IE mobile.

 

La sécurité

 On notera aussi le possible second frein lorsque des failles de sécurité critiques ont été découvertes dans le standard même, entraînant notamment la vive réaction de la communauté et de Microsoft.

Lors des débuts de WebGL, Microsoft tentait d’imposer sa technologie propriétaire, Silverlight, d’où sa réticence face à WebGL. Depuis Internet Explorer a rapidement comblé son retard, implémenté WebGL depuis la version 11 et Microsoft soutient également le développement du moteur BabylonJS. Deux failles de sécurité ont été découvertes dans la foulée de la sortie de Firefox 4 avec WebGL activé par défaut, et ont été très rapidement corrigées. L’une permettait de récupérer des images normalement accessibles via un login (on peut voler des photos de Facebook waouuh !), et l’autre permettait de récupérer des contenus des tampons vidéos, pour certains GPU avec des pilotes non sécurisés.

Actuellement, WebGL est désactivé (du moins avec Chrome) si les pilotes GPU ne présentent pas les impératifs de sécurité nécessaires (même s’ils seraient en mesure de faire tourner WebGL). Les seuls failles restantes permettent de faire planter certains navigateurs, comme on pourrait le faire en javascript/action script en jouant sur les boucles infinies et la saturation mémoire.

 

Le mouton noir du Khronos Group ?

Il ne faut pas non plus oublier que l’accélération graphique dans WebGL est disponible uniquement que si la carte graphique implémente correctement la spécification. Cela a aussi provoqué une certaine lenteur dans l’évolution du support d’OpenGL, notamment sous Linux où il était peu présent. Maintenant, nous pouvons dire que ces soucis sont globalement résolus.

Nous ne l’oublions pas. Les fabricants de cartes graphiques sont présents dans le Khronos Group (ATI, NVIDIA, AMD). WebGL nécessite pour eux de produire des drivers présentant des meilleurs impératifs de sécurité. Il s’agit d’un progrès. Depuis 2 ans n’importe que ordinateur, même le plus bas de gamme, est compatible WebGL sans avoir à réaliser de quelconque manipulation (changement de pilote, de paramètres du navigateur).

C’est totalement gratuit d’affirmer que WebGL a ralenti l’évolution d’OpenGL. OpenGL continue d’avancer, indépendamment de WebGL. OpenGL ES également. WebGL est basé sur OpenGL ES2, et OpenGL ES 3 est sorti. OpenGL est à la pointe, approximativement OpenGL ES suit OpenGL avec une dizaine d’années de retard, et WebGL suit OpenGL ES avec 2 ans de retard.

Sous Linux les problèmes proviennent souvent des fabricants de cartes graphiques qui livrent des pilotes peu aboutis pour ce système d’exploitation. Avec Nvidia il n’y a pas de problème, mais avec ATI l’installation des pilotes est parfois plus difficile.

 

WebGL a un avenir radieux !

Après un paragraphe louant le WebGL, l’auteur émets quelques objections :

WebGL a toutefois quelques limitations :

absence de tampon de sélection ;
absence de textures 3D ;
absence de geometry shader.

Ces trois fonctionnalités ne sont pas présentes dans OpenGL ES2.0 . Il est donc impossible qu’elles soient présentes dans WebGL. Le tampon de sélection peut tout de même être émulé pour faire du picking cheap.

L’auteur semble s’être abondamment inspiré de l’article Wikipédia sur WebGL. Les défauts reprochés sont les mêmes, et les petites imprécisions quant à sa compatibilité aussi.

 

 Finalement, il n’y a toujours pas d’application phare pour cette technologie. De plus, pour les jeux vidéo et les applications intensives le JavaScript et la surcouche apportée par le navigateur peut être aussi un facteur décisif et ainsi empêcher l’adoption de ce standard.

 

WebGL commence tout juste à avoir un taux de compatibilité sur desktop permettant d’envisager des applications commerciales (66% d’après http://caniuse.com/#feat=webgl ). Peu de développeurs sont actuellement formés à cette technologie, et les projets importants nécessitent encore du temps. Les décideurs sont souvent peu au courant de ce que permet cette technologie.

Les jeux vidéos et les applications intensives resteront évidemment natives. COD ou Solidworks ne passeront jamais dans le navigateur. Les joueurs et les ingénieurs CAO ont des machines puissantes, sont prêts à acheter les licences, à télécharger le produit. Ils recherchent la performance avant tout.

WebGL est uniquement un binding, et ne joue pas sur le même tableau que Unity qui propose un workflow de création 3D remarquable, et depuis peu il est possible d’exporter des applications Unity en WebGL. WebGL ne sera pas non plus aussi optimisé et contiendra moins de fonctionnalités que des technologies propriétaires et tournant sur un nombre limité de plateformes comme Metal.

Le Khronos Group est notamment constitué de développeurs de navigateurs : Google, la Fondation Mozilla, Opera, …, de concepteur de système d’exploitation: Apple, Canonical, … de fabricants de matériel : AMD, Nvidia, … et d’Universités parmi les plus reconnues. C’est compliqué et cela prend du temps de mettre tout le monde d’accord sur un standard. Et même si au final ce dernier à des défauts, sa portabilité est imbattable.

 

WebGL sera intéressant, voire incontournable pour :

  • le casual gaming,
  • les configurateurs produit,
  • les interfaces de navigation 3D (avec la prise en compte des NUI notamment),
  • de nouvelles expériences Web (ex : http://www.chromeexperiments.com/detail/graffiti-general/?f= ),
  • la recherche en algo 3D et les simulations (WebGL permet de partager le code très simplement, sans nécessiter d’OS/de librairie particuler ),
  • des applications dont on n’a pas encore l’idée !

En bref, c’est un grand OUI, WebGL a un avenir !

Lancement de Configurator3D

Afin d’éclaircir notre offre commercial, nous avons lancé une marqué dédiée uniquement au développement de configurateurs produits affichant une vue 3D en temps réel.

Le site internet est disponible ici : Configurateurs 3D

Ce lancement s’intègre dans notre stratégie de diversification SEO : il est plus facile de promouvoir plusieurs sites internet, chacun tablant sur des expressions spécialisées bien définies, que de promouvoir un seul site internet sur une multitude d’expressions de recherche.

Le site internet dispose d’une interface simple, 2D, mais intégrant des éléments Webgl. Pour les voir, cliquez et déplacez le curseur de la souris en bas à gauche et en haut à droite.

Site « au repos » :

Page après avoir bougé les éléments webgl :

 

 

LIGNUM : une version pour les maisons en pierre

Le projet LIGNUM progresse toujours dans la voie du marché. Nous avons déployé une version dédiée aux maisons en pierre. Au niveau technique, c’est la même application que la version bois, sauf que les modèles de maisons sont différents, et une feuille de style plus pimpante a été appliquée. Elle est disponible ici : configurateur de maisons en pierre .

Différents bugs ont également été corrigés, portant notamment sur l’accessibilité de l’application hors ligne et les textures qui pouvaient apparaître noircies avec Firefox (il s’agit en fait d’un bug de Firefox qui a été signalé).

Après un premier chargement avec les dernières versions de Firefox ou Chrome, LIGNUM est ensuite disponible en hors ligne à la même adresse.

Il est aussi maintenant possible d’exporter les maisons au format IFC (Industry Foundation Classes), format standard pour la CAO appliquée à la construction. Les modèles exportés peuvent ensuite être édités avec les logiciels d’architecture courants ou via Blender (il existe un module d’import au format IFC). Pour l’instant seule la structure des maisons (murs, toits, planchers, terrasses) est exportée.

La plaquette du configurateur de maisons LIGNUM

De nombreux bugs ont été corrigés sur la démonstration du configurateur de maisons disponible ici : configurateur de maisons web 3D.

Nous sommes actuellement en train de développer l’aspect commercial du projet, l’objectif étant d’avoir un produit commercialisable à compter de septembre prochain. D’ici là, la compatibilité avec le webgl aura encore augmenté (elle est actuellement d’environ 55% en général, de 85% si tout le monde utilisait Chrome, et continue d’augmenter), le logiciel sera débogué et nous aurons des modèles de maisons issus de partenariats avec des constructeurs.

SPACEGOO.com conservera sa même interface, un peu old school ;). Pour le configurateur nous créeront à terme un site internet pour regrouper les offres des constructeurs.

Vous pouvez télécharger la plaquette de présentation de LIGNUM.

 

le projet LIGNUM

Le projet principal sur lequel nous travaillons depuis 5 mois est un configurateur de maisons, LIGNUM. Du fait des développements de la démo de jeu d’échecs webgl/webrtc , de la démo Paris Bubbles ainsi que du petit jeu Teach me to fly,  le temps effectif passé sur le projet est plutôt de 4 mois.

LIGNUM est une application en ligne permettant de créer sa propre maison à partir d’un modèle prédéfini, en personnalisant le modèle. Nous visons dans un premier temps le marché français des maisons individuelles et plus particulièrement celui des maisons à ossature bois. Nous comptons commercialiser l’application en service as a software à compter de début septembre 2012.

Ce configurateur est conçu pour être utilisé soit par le prospect, à partir du site internet du fabricant ou d’un autre site agglomérant les offres, ou par un commercial devant le client. Il permettra de réduire la durée de la phase de conception en 3D de la maison, pendant laquelle un architecte dessine la future maison sans savoir encore si le client va signer le contrat. Il permettra aussi de présenter au client immédiatement un rendu. La plupart des maisons vendues étant proches de modèles sur catalogue, LIGNUM devrait pouvoir satisfaire à  terme ces demandes.

D’ici là, il reste une importante phase de débogage, de rajout de fonctionnalités spécifique demandées par les constructeurs, ainsi que l’ajout de modèles de maisons, de matériaux et d’objets 3D (fenêtres, mobilier, barrières, …).

Au niveau technique, le rendu et l’éditeur de terrain sont réalisés en utilisant la technologie webgl. Les phases de configuration 2D avec vue de dessus utilisent l’élément CANVAS 2D d’HTML5.

Accéder à la démonstration de LIGNUM