WebGPU : Apple propose de créer un nouveau standard pour les graphismes 3D sur le web
Vers une alternative bas niveau à WebGL ?

Le , par Coriolan, Chroniqueur Actualités
Pour faire face à la montée en puissance des interfaces graphiques 3D lors de ces dernières années, Apple a proposé de créer un nouvel API standard donnant accès aux fonctionnalités des GPU pour la programmation bas niveau, aussi bien pour les graphismes que pour le calcul : WebGPU. C’est l’équipe de Webkit, qui assure le développement du moteur de rendu de pages web exigé par Apple pour les navigateurs iOS, qui ont été à l’origine de cette proposition du successeur potentiel de WebGL.

WebGL est une spécification d'interface de programmation de 3D dynamique pour les pages et applications HTML5 créées par le Khronos Group. Elle permet d'utiliser le standard OpenGL ES au sein d'une page web, d'un livre numérique au format ePUB, d'un diaporama ou bien d'une application basée sur le standard HTML5, en s'aidant du langage JavaScript, des données au format JSON et de l'accélération matérielle pour les calculs et le rendu 3D à l'aide des pilotes OpenGL ES du ou des processeurs graphiques du terminal informatique (ordinateur, smartphone, tablette numérique, etc.).

Si WebGL est aujourd’hui le standard pour l’implémentation de graphismes 3D sur le web, l’équipe de WebKit évoque de nouveaux besoins en raison de l’évolution rapide des processeurs graphiques GPU et les API plateformes comme Direct3D de Microsoft, Metal d’Apple et Vulkan de Khronos Group qui offrent une performance bien meilleure que celle offerte par WebGL. Afin que la discussion sur ce sujet démarre activement, l'équipe WebKit d'Apple fournit déjà une proposition d'API et un prototype de cet API pour le projet open source de WebKit.

Dans un billet de blog, l’équipe a relaté l’histoire du développement du web pour expliquer le motif de la création d’un nouveau standard. Au début, les standards du web servaient à créer des pages web statiques seulement et les seuls graphiques présents étaient des images. Avec le temps, le web avait commencé à implémenter des fonctionnalités que les développeurs pouvaient exploiter grâce au JavaScript. En effet, il était possible de modifier dynamiquement les pages, mais sans véritable notion de traitement de graphismes. Enfin, il y avait une demande assez conséquente des graphismes totalement programmables pour que les scripts puissent créer des images dynamiquement. Le canvas de HTML5 avec son API de rendu 2D a été implémenté dans WebKit et a rapidement été adopté par les autres moteurs de navigateurs.

Avec le temps, le type d’applications et le contenu développé pour le web sont devenus plus ambitieux et les limitations de la plateforme ont commencé à se faire sentir. Un exemple est le jeu où la performance et la qualité visuelle sont essentielles. Il y avait une demande pour les jeux sur navigateurs, mais la plupart des jeux utilisaient des API qui fournissaient des graphismes 3D exploitant la puissance des processeurs graphiques (GPU). Mozilla et Opera ont montré le potentiel du rendu graphique d’un élément canvas et il était si fascinant que la communauté a décidé de travailler sur un standard qui sera WebGL par la suite. Puis toujours en raison de besoins grandissants est arrivé le standard WebGL 2 que Firefox et Google Chrome commencent à supporter.

Mais bien que le standard WebGL 2 ne soit pas encore entièrement défini, il affiche déjà des limites. En effet, WebGL est construit sur OpenGL ES, une bibliothèque d'assez haut niveau d'abstraction, qui en tant que telle ne donne pas accès aux fonctionnalités de bas niveau pour programmer des animations époustouflantes, comme le permettent les API comme Direct3D de Microsoft, Metal d'Apple ou Vulkan du Khronos Group. Dean Jackson note dans un billet de blog que ces jeux d’API contiennent des instructions spécifiques à certains systèmes d’exploitation, ce qui interdit leur standardisation et leur implémentation pour internet. L’initiative GPU pour le Web consiste donc à favoriser l’émergence de technologies logicielles de bas niveau qui peuvent accélérer les calculs liés à l’affichage web pour tous les systèmes du marché. De plus, OpenGL ne s'intéresse pas du tout aux possibilités de calculs parallèles qui sont apparues avec les processeurs GPU récents.

Jackson évoque également que la mise en place d’un nouveau standard doit fournir le support de l’usage de GPU pour d'autres champs d'application en dehors des applications à graphismes. Des technologies émergentes comme WebAssembly et WebVR pourraient en tirer profit. Vraisemblablement, d’autres applications gourmandes en ressources de processeur comme l’apprentissage machine pourraient en bénéficier aussi si elles sont exécutées sur navigateur.

Malgré cette initiative, l’enthousiasme d’Apple pour les technologies reste sélectif. La firme a choisi par le passé de supporter sa technologie Metal seulement et a omis le support de Vulkan. Son support pour OpenGl est à la traine comparé à la concurrence, probablement pour encourager les développeurs à utiliser son API Metal. De plus, Web Wokers est toujours non supporté par Safari, ce qui limite les possibilités des applications mobiles modernes sur les appareils iOS. Un ancien développeur d’Opéra avait souligné l’impact négatif d’Apple sur le futur du web. Cependant, Apple n'est pas la seule firme à privilégier ses technologies. En effet, ni Google ni Microsoft n’ont donné la priorité au web plutôt qu'à leurs plateformes natives respectives.

Source : blog WebKit

Et vous ?

Qu'en pensez-vous ?
Pensez-vous que cette initiative d'Apple va être prise au sérieux vu qu'ils ont omis le support de Vulkan ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Mat.M Mat.M - Expert éminent sénior https://www.developpez.com
le 08/02/2017 à 18:09
Citation Envoyé par Coriolan Voir le message
Avec le temps, le type d’applications et le contenu développé pour le web sont devenus plus ambitieux et les limitations de la plateforme ont commencé à se faire sentir.
l'ambition c'est bien reste à voir si le hardware,surtout sur les tablettes et smarpthones, suit derrière ....
Avatar de TheLastShot TheLastShot - Membre averti https://www.developpez.com
le 08/02/2017 à 18:32
Apple qui propose de créer un standard ? Ca doit être une première dans l'histoire de leur boite.

Bon troll à part je pense que c'est une bonne initiative. En effet OpenGL comment à se faire un peu vieux (et d'un point de vu personnel je ne suis pas très fan de son paradigme procédural)
Avatar de Uther Uther - Expert éminent https://www.developpez.com
le 08/02/2017 à 18:41
Citation Envoyé par Mat.M Voir le message
l'ambition c'est bien reste à voir si le hardware,surtout sur les tablettes et smarpthones, suit derrière ....
On est en 2017, même les téléphone d'entré de gamme on du hardware capable de tirer parti de l'accélération 3D.
Avatar de Mat.M Mat.M - Expert éminent sénior https://www.developpez.com
le 08/02/2017 à 18:56
Citation Envoyé par Uther Voir le message
On est en 2017, même les téléphone d'entré de gamme on du hardware capable de tirer parti de l'accélération 3D.
je n'ai jamais affirmé le contraire (encore une fois mes propos sont mal compris..)
le problème c'est que pour faire tourner un jeu vidéo sur une tablette il faut énormément de ressources hardware d'où une consommation d'énergie et dissipation de chaleur éventuelle
Avatar de bisthebis bisthebis - Nouveau membre du Club https://www.developpez.com
le 08/02/2017 à 19:48
Citation Envoyé par TheLastShot Voir le message
En effet OpenGL comment à se faire un peu vieux (et d'un point de vu personnel je ne suis pas très fan de son paradigme procédural)
Tu peux développer "paradigme procédural" ? Je connais mal les autres APIs, mais je n'arrive pas à imaginer un autre paradigme pour une API 3D. Quel paradigme proposes-tu ? De l'OOP ? C'est fort pareil mais transposable à moins de langages. Faire une API compatible C ça me paraît ardu avec de l'OOP. A moins que tu parles de programmation fonctionnelle, mais j'arrive pas à imaginer faire de la 3D avec des donnés immutable etc.
Du coup je suis authentiquement curieux de savoir comment tu organiserais une API graphique. (Vraie question, je manque sans doute de recul pour avoir un avis pertinent là-dessus)
Pour le peu d'expérience GL que j'ai (il fut un temps où je voulais tester vulkan mais entre ma lutte perpétuelle avec les drivers et la quantité de boilerplate j'ai été découragé), le seul reproche que je lui ferais c'est la machine à états qui ressemble trop à une variable globale géante.
Avatar de TiranusKBX TiranusKBX - Expert confirmé https://www.developpez.com
le 08/02/2017 à 22:02
Apple devrait plutôt en premier faire une refonte de Safari qui est le navigateur plantant le plus souvent et requérant le plus d'exception pour les pages au fonctionnement avancé.
Il faudrait aussi améliorer leur support d'OpenGL qui est à chier!
Avatar de youtpout978 youtpout978 - Membre expert https://www.developpez.com
le 08/02/2017 à 22:12
Ce qui est chiant c'est que pour utiliser ces technos il faut écrire du JS bien chiant ou exploiter des lib js aussi chiantes, il ne serait pas possible d'avoir des balises Html et du Css exploitant directement les capacité 3D du GPU, afin de faire des belles interfaces 3D avec des animations qui ne font pas freeze le PC ou le tel, à part des jeux vous avez déjà vu un site exploiter webGL ?
Avatar de TheLastShot TheLastShot - Membre averti https://www.developpez.com
le 08/02/2017 à 22:55
@Youtpout978: Euh.... L'intérêt de webGL et ses surcouches c'est de faire de la vrai 3D (genre afficher des modèles 3D, calculer la lumière et les ombres, etc.), fait juste des animations css de ton interface. HTML et CSS ne sont absolument pas prévu pour ce genre de tâches.
Avatar de Iradrille Iradrille - Expert confirmé https://www.developpez.com
le 09/02/2017 à 7:02
Citation Envoyé par youtpout978 Voir le message
à part des jeux vous avez déjà vu un site exploiter webGL ?
Google Map. Mais oui, c'est rare.

Citation Envoyé par Coriolan Voir le message
[B][SIZE=4]De plus, OpenGL ne s'intéresse pas du tout aux possibilités de calculs parallèles qui sont apparues avec les processeurs GPU récents.
WebCL est là pour ça.

Sinon, JS + accès bas niveau, tout de suite ça me fait peur : trop de problèmes possible de sécurité.
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux https://www.developpez.com
le 09/02/2017 à 10:22
Citation Envoyé par TheLastShot Voir le message
Apple qui propose de créer un standard ? Ca doit être une première dans l'histoire de leur boite.
Des standards, ils en ont créé beaucoup, juste ils sont fermés/verrouillés.

Après, je trouve leur initiative bien dommage sachant que WebGL 2 arrive.

Aussi, je tiens à dire qu'OpenGL n'est toujours pas une bibliothèque du passé. Disons que c'est une bibliothèque de plus haut niveau que Metal/Vulkan, mais aussi plus abordable en programmation). Vulkan n'est pas obligatoire surtout si vous n'avez pas besoin de 101% des capacités de votre machine.
Offres d'emploi IT
Ingénieur moa logiciel H/F
Safran - Ile de France - Villaroche
Ingénieur système de commande de vol H/F
Safran - Ile de France - Massy (91300)
Architecte systèmes externes TP400 H/F
Safran - Ile de France - Moissy-Cramayel (77550)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil