IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

509PARTAGES

8  1 
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 ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de 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.
3  0 
Avatar de Uther
Expert éminent sénior 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.
2  0 
Avatar de 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é.
2  0 
Avatar de wax78
Modérateur https://www.developpez.com
Le 09/02/2017 à 11:36
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
Et donc les compute shader ca sert a quoi ?
1  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 09/02/2017 à 13:03
JS + accès bas niveau, tout de suite ça me fait peur
C'est certes risqué évidemment mais c'est inévitable. Ce qu'il se passe en général, c'est qu'il y a d'abord des standards, ensuite une implémentation, ensuite des applications qui commence a l'exploiter et avec des failles découvertes puis on sécurise.

On peux trouver ça dommage de voir la sécurité en dernier lieu mais c'est il faut savoir développer des technologies et ensuite si elles fonctionne, elles sont utiliser on regarde la sécurité. C'est exactement la même démarche dans tous les secteurs et heureusement (cf l'automobile, l'argent...). Quand les technologies arrivent à maturité on trouve toujours un moyen de mettre une sécurité acceptable.
1  0 
Avatar de Zefling
Expert confirmé https://www.developpez.com
Le 09/02/2017 à 16:36
Citation Envoyé par youtpout978 Voir le message
Je connais le but de WebGL, mais pourquoi ne pas utiliser le travail qui a été fait pour le rendu des pages web afin d'avoir un rendu plus rapide et plus beau (surtout que c'est souvent ça qui est mis en avant aujourd'hui), quand je parle d'HTML et de CSS, le but ce n'est pas de faire des modèles 3D avec, mais plutôt avoir le rendu des pages fait avec WebGL ou plutôt son moteur de rendu, un peu comme ce qui est fait à l'heure actuelle sur WPF qui exploite Direct X pour son rendu.
T'aurais voulu un truc comme ça ? https://drafts.fxtf.org/custom/
1  0 
Avatar de 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 ....
0  0 
Avatar de TheLastShot
Membre extrêmement actif 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)
4  4 
Avatar de 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
0  0 
Avatar de 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.
0  0