Khronos rapporte également que les équipes d'ingénierie d'Apple et de Google travaillent ensemble pour adopter ANGLE dans WebKit afin de créer une base de code commune pour le développement. Khronos travaille également avec le W3C, qui développe une API WebGPU qui présentera aux navigateurs Web les capacités d'infographie modernes fournies par Direct3D 12, Metal et Vulkan.
Le groupe Khronos est un consortium industriel fondé en 2000, et dont le but est de créer des API dont les spécifications sont rendues publiques et sont utilisables gratuitement, pour « créer et exécuter des applications multimédias sur un grand nombre de plateformes et appareils ». Toutes les entreprises membres peuvent participer au développement des spécifications des API gérées par Khronos. Elles ont également accès aux brouillons des spécifications ainsi qu'aux tests de conformité.
Plus de 100 entreprises prennent part au Khronos Group, avec participation aux travaux et droit de vote, entreprises parmi lesquelles Apple, Intel, Mozilla, Google, Samsung ou encore Netflix. Il y a également des partenaires universitaires, des organisations à but non lucratif ou encore des coopérations avec d'autres instances, comme le W3C. Ces partenaires peuvent participer aux travaux, mais n'ont pas le droit de vote.
Parmi les standards proposés par le groupe Khronos figurent (sans s'y limiter) :
- OpenGL, une API multiplateforme pour la conception d'applications générant des images 3D (mais également 2D) ;
- Vulkan, la nouvelle génération d'API 3D (anciennement appelé OpenGL-Next) ;
- WebGL, un standard pour les éléments 3D en basse résolution, basé sur OpenGL ES, via HTML5.
WebGL (Bibliothèque de Graphismes Web) est une API JavaScript pour l'affichage de graphismes 2D et 3D dans n'importe quel navigateur web compatible sans utilisation de modules complémentaires. WebGL réalise cela en introduisant une API qui se conforme de façon très proche à OpenGL ES 3.0 (un sous-ensemble d'OpenGL pour l'embarqué et les mobiles) et qui peut être utilisée dans les éléments canvas d'HTML5.
De manière pratique, lorsqu'un élément graphique de type WebGL est inclus dans une page web, le navigateur exécute un programme en JavaScript utilisant l'interface WebGL. La bibliothèque WebGL appelle à son tour le pilote OpenGL ES du système d'exploitation qui se chargera de faire les calculs nécessaires à l'affichage sur l'écran, en exploitant si possible l'accélération matérielle des processeurs graphiques du terminal.
Lorsque WebGL 2.0 a été lancé pour la première fois en 2017, il s'agissait d'un énorme pas en avant en termes de capacités graphiques.
Même si elle rendait possible la réalisation des animations et des jeux vidéo nativement dans les pages Internet, la précédente version de WebGL (WebGL 1.0), ne répondait toutefois qu’à une partie des attentes des développeurs. En termes de fonctionnalités, WebGL était en effet en retard par rapport au standard 3D. En effet, OpenGL ES 2.0 (sur lequel s'appuie WebGL 1.0) date de 2007 et ce n'est que six ans après que WebGL 1.0 est arrivé. La spécification d'OpenGL ES 3.0, publiée en 2012 avait pour but de mettre la bibliothèque au gout du jour et c'est sur cette dernière que WebGL 2.0 repose.
WebGL 2.0 fournit l'ensemble de fonctionnalités OpenGL ES 3.0, ajoutant l'accès aux fonctionnalités clefs, y compris le retour de transformation, le rendu instancié, plusieurs cibles de rendu, des objets tampons uniformes, des requêtes d'occlusion et une prise en charge de texture beaucoup plus large au pipeline graphique programmable original basé sur les shaders WebGL 1.0.
Pendant des années, les développeurs ont eu besoin d'un chemin de secours WebGL 1.0 pour atteindre un nombre important de navigateurs et d'appareils. Cette fois-ci, cela n'est plus nécessaire : WebGL 2.0 est disponible sur les principaux navigateurs et le groupe Khronos, créateur de WebGL, estime que les auteurs d'applications peuvent cibler cette version en toute confiance.
Les travaux ont commencé sérieusement pour apporter WebGL 2.0 à Safari en juin 2019. Le projet a eu un certain nombre d'effets secondaires positifs. Apple a adopté ANGLE comme base de l'implémentation WebGL de Safari et, par conséquent, son équipe d'ingénieurs a passé plus d'un an à apporter des contributions spectaculaires au backend Metal d'ANGLE. Safari exécute désormais WebGL sur Metal pour les appareils iOS et macOS récents. Le travail collaboratif se poursuit entre les équipes d'ingénierie d'Apple et de Google. Comme illustration, nous pouvons citer la base de code commune pour le développement à l'avenir et le fait que Chrome utilise également le backend Metal d'ANGLE. Alors même que WebGL 2.0 atteint l'omniprésence, les travaux sur cette spécification continuent de faire progresser l'interopérabilité et la cohérence dans d'autres domaines.
« Cette collaboration fructueuse entre nos équipes d'ingénieurs améliorera et simplifiera l'écosystème graphique sur le Web », a déclaré Ken Russell de Google, président du groupe de travail Khronos WebGL. « Les développeurs peuvent enfin cibler WebGL 2.0 en toute confiance, et nous sommes impatients à l'idée de savoir que WebGPU apportera de nouvelles avancées aux applications graphiques du Web dans un avenir proche ».
« En tant que premiers champions de WebGL, nous sommes ravis de voir un support vraiment large de WebGL 2 devenir une réalité », a déclaré Kelsey Gilbert, responsable de Mozilla WebGL. « C'est excitant d'avoir WebGL 2.0 sur Firefox pour iOS, et nous anticipons et attendons avec impatience de voir le premier développement de WebGL-2 débloquer plus de puissance, plus de flexibilité et plus d'efficacité pour les applications de tous types et pour tous les utilisateurs ».
« Microsoft Edge est ravi de prendre entièrement en charge WebGL 2.0, permettant aux développeurs Web d'accéder à la puissance de la GPU », a déclaré Jatinder Mann, Partner Group Program Manager chez Microsoft. « Combiné à la simplicité du framework de rendu open source : Babylon.js, l'accès aux fonctionnalités graphiques de pointe sur Microsoft Edge est aussi simple que quelques lignes de javascript ».
Les fonctionnalités graphiques interactives basées sur un navigateur évoluent rapidement, presque aussi rapidement que la demande de nouvelles fonctionnalités augmente. L'API WebGPU du W3C est activement développée dans sa GPU pour le groupe de travail Web, avec des implémentations de navigateur en cours. Actuellement à l'état de projet, cette API exposera aux navigateurs Web les capacités d'infographie modernes fournies par Direct3D 12, Metal et Vulkan.
« Le W3C est ravi de travailler avec Khronos et se joint à eux pour féliciter les implémenteurs d'avoir doté la plateforme Web d'une API graphique 3D robuste désormais disponible sur tous les appareils », a déclaré Dominique Hazaël-Massieux, Immersive Web W3C Strategist. « Le travail de Khronos sur Vulkan et SPIR-V est un élément clef de l'API WebGPU du W3C et de son langage d'ombrage WGSL, conçu pour fournir des graphiques 3D et une API de calcul plus puissants pour le Web, construits sur les capacités GPU natives modernes ».
Le déploiement complet de toute nouvelle spécification prend du temps. WebGL 1.0 a été initialement publié en mars 2011 et a été entièrement pris en charge par plus de 80 % des navigateurs en septembre 2014, trois ans et demi plus tard. WebGL 2.0 a maintenant atteint le même niveau de référence d'omniprésence - plus de 80 % de disponibilité - mais il a fallu un temps similaire pour y arriver. Le voyage de WebGL 1.0 à WebGL 2.0 à WebGPU se poursuivra, même une fois que la spécification WebGPU sera officiellement publiée.
En attendant, WebGL continue d'évoluer. Le groupe Khronos a récemment annoncé la disponibilité du format de texture compressé sur tous les navigateurs ainsi qu'une nouvelle extension multitirage qui peut améliorer considérablement les performances grâce au traitement par lot de la géométrie. Il a également fourni l'accès à la fonctionnalité OES_draw_buffers_indexed pour permettre des techniques avancées de transparence indépendantes de l'ordre. Enfin, il continue à travailler sur des tests de conformité étendus : « la performance et la qualité sont nos principales priorités en tant que groupe de travail ».
« La disponibilité omniprésente de WebGL 2.0 témoigne de l'engagement soutenu des fournisseurs de navigateurs, que nous félicitons d'avoir apporté cette nouvelle fonctionnalité importante à la plateforme 3D la plus largement disponible et accessible jamais créée : le Web », a déclaré Neil Trevett, vice-président écosystèmes de développeurs chez NVIDIA et président de Khronos. « Khronos s'engage à assurer le support continu de WebGL et à travailler en étroite collaboration avec le W3C et les fournisseurs de navigateurs pour assurer une future transition en douceur de WebGL vers WebGPU pour les développeurs Web du monde entier ».
« Nous encourageons tous les développeurs à migrer de WebGL 1.0 vers WebGL 2.0 si vous ne l'avez pas déjà fait », a conclu le groupe Khronos.
une autre démo avec WebGL
Source : Khronos
Et vous ?
Avez-vous réalisé des sites et applications Web reposant sur WebGL ?
Quelle est la meilleure utilisation de WebGL que vous avez rencontrée ?
Comment voyez-vous l'avenir du Web ?
Voir aussi :
Chrome 56 : Google annonce un rendu 3D plus rapide avec WebGL 2.0, la nouvelle version de la spécification d'affichage 3D pour les navigateurs web
Firefox 51 est disponible et embarque le support de FLAC, WebGL 2 ainsi que des améliorations dans le gestionnaire intégré de MdP
La spécification WebGL 2.0 est disponible dans sa version finale et apporte les fonctionnalités d'OpenGL ES 3.0 dans nos navigateurs
Khronos publie la spécification d'OpenGL ES 3.1 la bibliothèque 3D pour les systèmes embarqués et mobiles intègre les compute shaders