Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. WebGL — Wikipédia
WebGL — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
WebGL
Description de l'image WebGL Logo.svg.

Informations
Développé par WebGL Working Group
Première version 3 mars 2011[1]
Dernière version 2.0 (17 janvier 2017)
Environnement Web multi-plates-formes
Type API
Documentation www.khronos.org/webgl/wiki/Main_PageVoir et modifier les données sur Wikidata
Site web www.khronos.org/webgl/

modifier - modifier le code - voir Wikidata (aide)

WebGL est une spécification d'interface de programmation de 3D dynamique pour les pages et applications HTML5 créée 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[2], d'un diaporama[3] 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.). OpenGL ES a été choisi pour son large support au sein des architectures embarquées et mobiles.

La spécification WebGPU[4] tend à remplacer progressivement WebGL en permettant de meilleurs performances et des shaders de calcul sur le GPU avec le langage WGSL[5] remplaçant GLSL et une exécution asynchrone.

Fonctionnement

[modifier | modifier le code]
Article détaillé : OpenGL ES.

WebGL permet d'afficher, de créer et de gérer dynamiquement des éléments graphiques complexes en 3D dans la fenêtre du navigateur web d'un client. Il est actuellement implémenté dans la plupart des grands navigateurs modernes, mais cette implémentation est récente, d'où le fait que cette technologie reste assez méconnue du grand public.

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 du ou des processeurs graphiques du terminal.

Implémentations

[modifier | modifier le code]

Si, en septembre 2009, aucun navigateur web ne permettait l'affichage 3D directement dans le navigateur sans greffon, ce n'est plus le cas aujourd'hui[6]:

  • Firefox le supporte depuis sa version 4 (6 juillet 2010), il utilise pour cela OpenGL ES dans sa version Android et OpenGL dans sa version Linux, MacOS et Windows[7] et depuis la version 50 du 15 novembre 2016 WebGL est disponible pour plus de 98 % des utilisateurs sur Windows 7 ou une version ultérieure [8]
  • Google Chrome à partir de la version 9 (3 février 2011)[9]. La version ChromeOS utilise OpenGL ES, la version Linux utilise OpenGL depuis la version 45 environ[10].
  • Safari propose le support de WebGL depuis sa version 5.1 (20 juillet 2011)
  • Opera, depuis la version 12 (14 juin 2012)
  • Internet Explorer est le dernier des grands navigateurs, avec la version 11 sortie le 17 octobre 2013.
  • Les versions mobiles de Firefox, Opera et du navigateur de Blackberry supportent également WebGL[6].

Limitations

[modifier | modifier le code]

WebGL est basé sur OpenGL ES 2.0 (OpenGL for Embedded Systems), une version d'OpenGL destinée aux systèmes embarqués. Elle n'a pas les fonctions d'appel fixe d'OpenGL 1.0 qui sont également obsolètes dans OpenGL 3.0 : par exemple, plutôt que de créer les objets, face par face, avec un appel de fonction à chaque face, une seule fonction soumet une liste de faces au moteur. Il est toujours possible de modifier les paramètres de la liste par la suite. Cela permet d'améliorer les performances en réduisant le flux de données entre processeur principal (CPU) et processeur graphique (GPU), et donc la consommation de bande passante.

WebGL étant fondé sur OpenGL ES, certaines fonctionnalités d'OpenGL y sont absentes, dont :

  • Le tampon de sélection (selection buffer, permettant de sélectionner un objet par un simple clic) ; des techniques alternatives, plus gourmandes en calcul, existent cependant[11].
  • Les textures 3D (technique de textures en volume) : bien qu'OpenGL ES 2.0 possède une extension Texture 3D[12], celle-ci n'existe pas en WebGL[13]. La bibliothèque webgl-texture3d tente de remédier à ce problème[14].
  • Le geometry shader : WebGL dispose du vertex shader et du fragment shader, mais pas du geometry shader.

Khronos Group prépare depuis 2012 le brouillon de la norme WebGL 2.0, basée sur OpenGL ES 3.0[15],[16],[17]. En janvier 2017, un support partiel de WebGL 2.0 est rendu disponible dans Firefox 51 et Chrome 46[18].

Problèmes de jeunesse

[modifier | modifier le code]

Certains problèmes de compatibilité étant apparus à ses débuts, de nombreuses cartes graphiques avaient été bloquées dans WebGL, les différents constructeurs ont donc fait des efforts sur les pilotes afin de rendre leurs cartes compatibles[19].

Microsoft en retard sur la concurrence

[modifier | modifier le code]

En juin 2011, Microsoft a renouvelé sa défiance vis-à-vis de cette technologie[20], d'après ses dires, principalement pour des raisons de sécurité. WebGL restait alors exclu d'Internet Explorer alors qu'il était supporté par la plupart des navigateurs. Mike Shaver, vice-président de la stratégie technique de la fondation Mozilla répond que les critiques de Microsoft valent pour toutes les technologies 3D web (Silverlight de Microsoft inclus), s'appuyant sur l'accélération 3D matérielle[21].

En juin 2013, Microsoft confirme que son prochain navigateur Internet Explorer 11 aura la prise en charge de la technologie WebGL[22].

Projets et réalisations

[modifier | modifier le code]
PlayCanvas, un autre projet utilisant WebGL.

Malgré la finalisation récente de WebGL et en raison de son fort potentiel, les projets utilisant cette technologie se multiplient.

Des compilateurs C/C++ vers JavaScript tels qu'Emscripten, Mandreel ou Duetto, permettent de faciliter le portage d'applications préexistantes[23],[24],[25].

Parmi les projets et réalisations en WebGL, on notera en particulier la contribution de Google concernant la création de multiples applications en WebGL (Google Map en 3D par exemple), Chrome Experiments[26], démonstrations régulièrement mises à jour à partir du site The Chromium Projects.

Du côté des jeux vidéo, le portage de Quake 2[27] est à noter, ainsi que quelques projets de jeux amateurs.

Et enfin les possibilités de la visualisation 3D en ligne pour imagerie médicale ou scientifique, comme la visualisation de l'anatomie humaine ou plus généralement animale[28], de molécules[29].

Différents outils de cartographie, comme l'ancienne application de cartographie 3D Nokia Maps 3D WebGL qui représentait des villes entières dont les bâtiments avaient été reconstruits par des procédés automatiques d'imagerie numérique. F4map qui se base sur les données 3D fournies par OpenStreetMap, c'est également le cas plus récemment du moteur WikiMiniAtlas[30] de Wikipedia.

Il existe des sites regroupant des collections d'objets 3D à télécharger et permettant de visualiser les objets disponibles directement dans l'interface web. On peut citer Sketchfab[31]. C'est le cas aussi du « FlightGear Scenery Model Directory » du simulateur de vol libre FlightGear Flight Simulator[32].

Egalement, des plateformes SaaS permettent de téléverser, de visualiser et d'exploiter des objets 3D directement depuis l'interface web.

La NASA a développé une application web interactive appelée "Experience Curiosity" pour célébrer le 3e anniversaire de l'atterrissage du rover Curiosity sur Mars[33]. This Blend4Web-based app[34]. L'application permet de contrôler le rover, ses caméras, son bras articulé et de reproduire les événements importants de la mission Mars Science Laboratory[35],[36]. L'application a été présentée au début de la section WebGL au SIGGRAPH 2015[37].

Bibliothèques orientées 3D

[modifier | modifier le code]

Il existe de plus en plus de bibliothèques pour faciliter le développement en WebGL[38]. Three.js est l'une des plus répandues.

On peut également citer Babylon.js[39], Blend4Web[40], GLGE[41], CopperLicht[42], C3DL[43], SceneJS[44], SpiderGL[45], OSGJS[46] et Verge3D, qui permettent l'implémentation d'objets ou de scènes en trois dimensions dans le navigateur. Certaines sont même dédiées à la visualisation scientifique et médicale, telle que XTK [47].

Les moteurs de jeu professionnels offrent maintenant la possibilité aux développeurs d'exporter directement dans les navigateurs en WebGL [48],[49], ouvrant ainsi la porte au développement de jeux AAA sur WebGL.

Bibliothèques orientées 2D

[modifier | modifier le code]

Différents frameworks dynamiques 2D utilisent également WebGL, pour tirer parti de son accélération matérielle, c'est le cas par exemple des bibliothèques WebGL-2d, enchant.js ou encore pixi.js, qui permettent également d'ajouter quelques éléments tridimensionnels dans des applications bidimensionnelles. Pixi.js est par exemple utilisée sur les sites promotionnels de la chaîne de restauration rapide américaine McDonald's[50].

Notes et références

[modifier | modifier le code]
  1. ↑ (en) [1]
  2. ↑ (en) 3D 4 ebook – FAQ
  3. ↑ (en) This presentation is an HTML5 website – Canvas 3D (WebGL)
  4. ↑ (en) « Spécification WebGPU par le W3C » Accès libre, sur Site officiel des spécifications du W3C
  5. ↑ (en) « Spécification du langage de shader WGSL » Accès libre, sur Site officiel de spécification du W3C
  6. ↑ a et b (en) Can I use WebGL?
  7. ↑ (en) « Platform/GFX/WebGL/Backends », sur mozilla.org
  8. ↑ [2] sur mozilla.org
  9. ↑ (en)« A dash of speed, 3D and apps », 3 février 2011 (consulté le 10 décembre 2013)
  10. ↑ il faut le lancer avec les options -ignore-gpu-blacklist -use-egl pour que les versions ≤44 fonctionnent avec OpenGL ES
  11. ↑ (fr) Le picking en WebGL
  12. ↑ (en) OES_texture_3D
  13. ↑ (en) 3D textures in WebGL sur le forum d'aide aux développeurs de Khronos
  14. ↑ (en) webgl-texture3d
  15. ↑ (en) https://wiki.mozilla.org/Platform/GFX/WebGL2
  16. ↑ (en) « WebGL 2.0 Specification », sur khronos.org (consulté le 19 mai 2023).
  17. ↑ (en) What's coming in WebGL 2.0
  18. ↑ Support d'une partie de WebGL 2.0 par Firefox 51 et Chrome 56
  19. ↑ Pilotes de cartes graphiques bloqués
  20. ↑ Avis de Microsoft juin 2011
  21. ↑ A three-dimensional plateform
  22. ↑ WebGL sur Internet Explorer 11
  23. ↑ (en) kripken / emscripten – OpenGL support
  24. ↑ (en) Duetto (C++ for the Web) 0.9.2 is out — OpenGL ES implementation in WebGL and toolchain improvements
  25. ↑ (en) C++ to JavaScript: Emscripten, Mandreel, and now Duetto
  26. ↑ Chrome Experiments
  27. ↑ Quake 2 WebGL
  28. ↑ Zygote Body
  29. ↑ GLmol - Molecular Viewer on WebGL/Javascript
  30. ↑ WikiMiniAtlas
  31. ↑ (en) « Explore 3D Models », sur Sketchfab (consulté le 19 mai 2023).
  32. ↑ FlightGear Scenery Model Directory
  33. ↑ « New Online Exploring Tools Bring NASA's Journey to Mars to New Generation », NASA (consulté le 7 août 2015)
  34. ↑ « Experience Curiosity », NASA's Eyes (consulté le 7 août 2015)
  35. ↑ « Prenez le contrôle de Curiosity avec Blend4Web », Greg G.d.Bénicourt Blog (consulté le 16 septembre 2015)
  36. ↑ « Internet 3D: Take the Curiosity Rover for a Spin Right on the NASA Website », Technology.Org (consulté le 12 août 2015)
  37. ↑ « Khronos Events - 2015 SIGGRAPH », Khronos (consulté le 13 août 2015)
  38. ↑ (en) HTML5 game engines - WebGL
  39. ↑ http://www.i-programmer.info/news/144-graphics-and-games/6243-babylonjs-a-webgl-game-engine-from-microsoft.html
  40. ↑ Blend4Web
  41. ↑ GLGE
  42. ↑ CopperLicht
  43. ↑ C3DL
  44. ↑ SceneJS
  45. ↑ SpiderGL
  46. ↑ http://osgjs.org/
  47. ↑ « Xtk/X », sur GitHub (consulté le 16 août 2020).
  48. ↑ (en) « GDC 14 : Mozilla & Epic Games Run Unreal Engine 4 in Firefox - PC Perspective », sur PC Perspective (consulté le 16 août 2020).
  49. ↑ « In-depth on Unity 5's WebGL publishing tech », sur gamasutra.com (consulté le 16 août 2020).
  50. ↑ (en) Look Ma! We made the cut… — goodboydigital.com

Voir aussi

[modifier | modifier le code]
  • Web3D
  • WebCL
  • O3D
  • Liste de bibliothèques 3D
  • Liste de frameworks WebGL

Liens externes

[modifier | modifier le code]
  • Khronos Group
  • Brouillon WebGL 2.0
  • Chrome Experiments - WebGL
  • developer.Mozilla tech demo - WebGL
  • Exemples de développement simples en WebGL utilisant three.js
  • learningwebgl, blog donnant régulièrement des liens vers les différentes démos et applications WebGL.
  • WebGL Paris, événement gratuit, annuel et francophone autour du WebGL
  • understanding of WebGL’s role in 3D graphics and its integration with modern GPUs like the RTX 4090
v · m
Standards du Khronos Group
  • COLLADA
  • EGL
  • glTF
  • OpenCL
  • OpenGL
  • OpenGL ES
  • OpenGL SC (en)
  • OpenKODE
  • OpenMAX
  • OpenML
  • OpenSL ES (en)
  • OpenVG
  • OpenWF (en)
  • OpenXR
  • SPIR
  • Vulkan
  • WebCL
  • WebGL
v · m
API Web
Côté serveur
Protocole de communication
  • CGI
  • SCGI
  • FCGI
  • AJP
  • WSRP
  • WebSocket
APIs serveur
  • C NSAPI (en)
  • C ASAPI
  • C ISAPI
  • COM ASP
  • Servlet
  • container
  • CLI OWIN (en)
  • ASP.NET Handler (en)
  • Python WSGI
  • Ruby Rack
  • JavaScript JSGI (en)
  • Perl PSGI
  • Portlet container
Modules apaches
  • mod_jk
  • mod_lisp (en)
  • mod_mono (en)
  • mod_parrot (en)
  • mod_perl
  • mod_php
  • mod_proxy (en)
  • mod_python (en)
  • mod_wsgi
  • mod_ruby (en)
  • Phusion Passenger
Sujets
  • Ressource du World Wide Web vs. Service web
  • Open API (en)
  • Webhook
  • Serveur d'applications
  • Scripting
Côté client
W3C
  • HTML5 audio (en)
  • Canvas
  • CORS
  • DOM
  • DOM events (en)
  • File (en)
  • Geolocation (en)
  • IndexedDB
  • SSE
  • SVG
  • Video
  • WebRTC
  • WebSocket
  • Web messaging (en)
  • Stockage web local
  • WebAuthn
  • Web worker (en)
  • XMLHttpRequest
Khronos
  • OpenCL
  • WebGL
Autres
  • Gears
  • Web SQL Database (formerly W3C)
Sujets
  • Page web dynamique
  • Open Web Platform (en)
  • Rich Internet application
  • icône décorative Portail de l’imagerie numérique
  • icône décorative Portail d’Internet
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=WebGL&oldid=230768510 ».
Catégories :
  • Bibliothèque logicielle graphique
  • Interface de programmation
  • 3D
  • JavaScript
  • OpenGL
Catégories cachées :
  • Page utilisant P2078
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Portail:Imagerie numérique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Technologies/Articles liés
  • Portail:Internet/Articles liés
  • Portail:Médias/Articles liés
  • Portail:Société/Articles liés
  • Portail:Programmation informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id