Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

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

    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 ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert éminent sénior
    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 ....
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    ( A Einstein)

  3. #3
    Membre extrêmement actif
    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)
    J'ai fais des fautes dans mon message ? Bah ça arrive... Tout le monde fait des fautes, je ne fais pas exception. Des fois parce que j'écris trop vite, parfois parce que je suis fatiguée, parfois parce que je ne me relis pas parce que je n'ai pas le temps, ou la flemme (genre à 4h du matin).
    Alors si vous voulez me répondre sur le fond de mon message en glissant un petit "fait attention aux fautes" OK. Mais si votre message consiste juste à surligner toutes les fautes comme un maniaque, sans rien apporter à la discussion, faites-le par MP, ça évitera de polluer.
    Merci

  4. #4
    Expert éminent sénior
    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.

  5. #5
    Expert éminent sénior
    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
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    ( A Einstein)

  6. #6
    Nouveau membre du Club
    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.

  7. #7
    Expert confirmé
    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!
    Rien, je n'ai plus rien de pertinent à ajouter

  8. #8
    Membre expert
    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 ?

  9. #9
    Membre extrêmement actif
    @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.
    J'ai fais des fautes dans mon message ? Bah ça arrive... Tout le monde fait des fautes, je ne fais pas exception. Des fois parce que j'écris trop vite, parfois parce que je suis fatiguée, parfois parce que je ne me relis pas parce que je n'ai pas le temps, ou la flemme (genre à 4h du matin).
    Alors si vous voulez me répondre sur le fond de mon message en glissant un petit "fait attention aux fautes" OK. Mais si votre message consiste juste à surligner toutes les fautes comme un maniaque, sans rien apporter à la discussion, faites-le par MP, ça évitera de polluer.
    Merci

  10. #10
    Expert confirmé
    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é.

  11. #11
    Responsable 2D/3D/Jeux

    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.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  12. #12
    Membre expert
    Citation Envoyé par TheLastShot Voir le message
    @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.
    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.

  13. #13
    Modérateur

    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 ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  14. #14
    Expert éminent sénior
    Citation Envoyé par Mat.M Voir le message
    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
    Évidement que tout dépend du niveau de qualité demandé. Personne ne va demander à une tablette d'entrée de gamme de faire tourner le dernier jeu AAA pour PC en HD avec tout les détails au max.

    Mais ça devrait permettre de monter la barre de la qualité des jeux utilisables sur un matériel donné, et de baisser la consommation des jeux a qualité égale.

  15. #15
    Membre expérimenté
    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.
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  16. #16
    Inactif  
    Le vrai problème à la base c'est que le js est beaucoup trop lent, impossible avec de gérer décemment les algos matriciels, la physique, le culling... ils feraient mieux de débloquer unity plugin des browsers, ça au moins ça marchait.

  17. #17
    Expert éminent sénior
    Citation Envoyé par youtpout978 Voir le message
    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 ?
    Actuellement JavaScript est en effet une limite, mais grâce à WebAssembly, à l'avenir, la plupart de appli web qui utiliseront de la 3D seront faite en des langages plus adaptés et avec de meilleures performances.

    Citation Envoyé par LittleWhite Voir le message
    Après, je trouve leur initiative bien dommage sachant que WebGL 2 arrive.
    L'un n’empêche pas l'autre : WebGL c'est OpenGL ES pour le web alors que ce WebGPU serait plutôt un Vulkan pour le Web. Les deux ont leurs avantages et leurs inconvénients.

    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.
    Ça c'est juste améliorer les moteur de rendu pour tirer parti des cartes 3D, c'est complètement indépendant de WebGL.
    Je sais que Mozilla travaille là dessus avec le Webrenderer de Servo qui a d'excellents résultats et qu'ils comptent intégrer à Firefox dans le courant de l'année. Les autres navigateur communiquent peu sur le travail en cours, mais j'ai entendu dire qu'ils y travaillent aussi.

  18. #18
    Membre expert
    J'attends WebAssembly de pieds ferme mais je pense qu'il sera pleinement utilisable dans 2-3 ans, après pour le rendu 3D je sais que c'est déjà possible avec les filtres Direct X sur IE, et il y 'a pas à dire un background gradient générer avec direct X a une autre gueule qu'un gradient classique, je pensais surtout qu'ils pouvaient réutiliser la couche qu'ils avaient implémenter pour le Web GL plutôt que de recréer un truc de 0.

  19. #19
    Expert confirmé
    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/

  20. #20
    Membre expert
    Citation Envoyé par Zefling Voir le message
    T'aurais voulu un truc comme ça ? https://drafts.fxtf.org/custom/
    Oui pas mal comme proposition.

###raw>template_hook.ano_emploi###