La précédente version de WebGL (WebGL 1.0) a exposé les fonctionnalités d'OpenGL ES 2.0 (un sous-ensemble d'OpenGL pour l'embarqué et les mobiles) au sein des navigateurs. Ainsi, il a été possible de réaliser des animations et des jeux vidéo, nativement, dans les pages Internet. Toutefois, OpenGL ES 2.0 date de 2007 et ce n'est que six ans après que WebGL 1.0 est arrivé. Déjà WebGL souffrait d'un retard par rapport au standard 3D en termes de fonctionnalités.
Évidemment, 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. Ainsi, les navigateurs vont avoir accès aux requêtes d'occlusion, feedback de transformation, rendu instancié, aux opérateurs bit à bit dans les shaders et uniform buffero objects.
Ces nouvelles fonctionnalités permettront aux développeurs de mettre en place des techniques avancées telles le rendu différé et au rendu basé sur la physique.
Vous pouvez tester dès à présent WebGL 2.0 au travers de cette démonstration. Pour cela, vous devez utiliser Firefox ou Google Chrome à jour. Sous Windows, votre GPU doit supporter DirectX 11 sous Windows, OpenGL 4.1 pour macOS, OpenGL 3.3 et certaines extensions pour Linux, ou OpenGL ES 3.0.
une deuxième démonstration : After the Flood
Pour obtenir un contexte WebGL 2, vous pouvez obtenir le code suivant :
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('webgl2'); let isWebGL2 = !!ctx; if (!isWebGL2) { // try to fallback to webgl 1 ctx = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); } if (!ctx) { console.log('your browser does not support WebGL'); } |
Par contre, comme pour WebGL 1.0, des concessions ont dû être faites. Le support des formats de texture ETC2/EAC n'est disponible qu'à travers une extension (et donc, si le matériel peut les supporter). La texture swizzling ainsi que la mémoire CPU exposée au GPU ont été retirées.
Mais l'avenir nous réserve tout plein de bonnes choses. Le support des compute shader devrait arriver dans une future version. Aussi, Khronos a commencé le travail sur une nouvelle génération de WebGL afin d'apporter les performances des nouvelles générations de bibliothèque 3D. Au travers de ces mots, il est possible de comprendre qu'il soit mention de Vulkan.
Votre opinion
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 ?
Source
Annonce Khronos