GRATUIT

Vos offres d'emploi informatique

Développeurs, chefs de projets, ingénieurs, informaticiens
Postez gratuitement vos offres d'emploi ici visibles par 4 000 000 de visiteurs uniques par mois

emploi.developpez.com

WebGL 1.0, spécification finalisée
Pour la bibliothèques d'accélération 3D libre soutenue par Chrome, Firefox, Opera et Safari

Le , par LittleWhite, Responsable 2D/3D/Jeux
Ces dernier temps, vous avez entendu parler de la mise en place de WebGL dans les nouvelles versions des différents navigateurs web. Comme vous devez déjà le savoir, Firefox 4, Google Chrome 9 (rendez-vous à l'adresse "about:flags" pour activer WebGL supportent la nouvelle technologie (également soutenue par Apple pour Safari et par Opera).

Khronos, un consortium de constructeurs de cartes graphiques (NVidia, AMD, Imagination Technologies, ...) et de différents grand acteurs dans le monde de la 3D (Activision, Epic Games, ...) annonce durant la Game Developers Conference à San Francisco la finalisation de la spécification du WebGL en version 1.0.

Pour rappel, Khronos est principalement connu pour ces différentes bibliothèques telles que OpenGL ou la déclinaison mobile OpenGL ES. L'avantage de ces bibliothèques dont WebGL fait parti est qu'il n'y a aucune obligation de payer une licence lors de la création d'un programme. De plus, les bibliothèques indépendantes de la plateforme.

L'annonce de WebGL indique une évolution du web permettant maintenant une intégration d'applications 3D accélérées par la carte graphique. Effectivement, le WebGL permet l'utilisation des technologies 3D dans du code javascript et tout cela sans plugins supplémentaires. Grace à cette intégration directement dans le javascript, il est facilement imaginable de mélanger les différents éléments d'une page HTML 5 avec les effets gérés par le GPU.

Techniquement, le WebGL est une surcouche de OpenGL ES 2.0 (technologie déjà présente dans les smartphones). Le pipeline utilisé est dynamique permettant la conception d'effets évolués exploitant au maximum la carte graphique par le biais des shaders.

La spécification de WebGL 1.0 est disponible sur cette page

Sources

Revue de presse Khronos
Wiki du WebGL
Demo WebGL
Éditeur de shader avec WebGL

Et vous ?

Que pensez-vous de WebGL ?
Pensez-vous que cela va révolutionner les sites web ?
Utilisez-vous déjà WebGL ?


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


 Poster une réponse

Avatar de stardeath stardeath - Membre expert http://www.developpez.com
le 04/03/2011 à 17:44
Citation Envoyé par LittleWhite  Voir le message
Mais on ne va pas faire Crysis en WebGL d'une. De deux, vous ne vous etes jamais vraiment poser la question pour vos smartphones, alors que finalement WebGL utilise la meme technologie que celle dans votre iPhone / Android phone.
(Et on peut voir que sur iPad tourne Epic Citadel ... et bah pourtant je pensais que l'iPad etait limite).
Apres, si vous parlez de firefox tout le temps, mais vous pouvez toujours changer pour un navigateur plus leger. Et puis le Flash ne fait pas vraiment dans la 3D ... donc ce n'est pas comparable non plus ...

alors j'ai suffisamment vu râler sur ce forum à cause de type qui arrive à faire laguer un gros proc avec une bannière de pub en flash, et d'autre qui font du remake de quake 2 aussi en flash, donc on peut facilement extrapoler sur le fait que des gens vont le faire le crysis en webgl, ça c'est une certitude.

ensuite c'est pas la question de la légèreté du navigateur mais plutôt qu'une appli 3d donc plutôt lourde n'a rien à faire dans un navigateur. mais bon si tout le monde dit amen à un truc d'une inutilité absolue selon moi, bah je me tais (j'espère juste que ça sera désactivable un peu comme le plugin flash)
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux http://www.developpez.com
le 04/03/2011 à 17:46
Vous auriez regarde ceci -> https://cvs.khronos.org/svn/repos/re...les/index.html
(dans le pack de demo)

Et le ShaderToy ...
Avatar de osopardo osopardo - Membre régulier http://www.developpez.com
le 04/03/2011 à 17:50
[Edit]Oulah, un peu grillé sur le coup... [/Edit]

Citation Envoyé par stardeath  Voir le message
au lieu de programmer en c, c++, delphi, java ou autre, le seul langage dans un navigateur c'est javascript.

C'est sûr qu'on à pas le choix et que ce n'est pas le langage habituellement utilisé pour la 3D mais, malgré ses particularités, ce n'est qu'un langage parmi d'autres, maintenant que les moteurs d'exécutions semblent à la hauteurs (cf l'équipe d'O3D, depuis les performances on fait d'autres bons), ça ne semble pas être un gros handicap

Citation Envoyé par stardeath  Voir le message
sauf que qui dit application 3d, dit code source et assets en conséquence, alors tu prends firefox avec un jeu flash ouvert puis tu multiplies par 3 ou 4 mini.

Un peu comme un jeux video standalone, non ? Puisqu'on appel directement openGL depuis le javascript, je ne voit pas de grosse différence.

Évidement si tu lance un gros jeux vidéo dans ton navigateur ça va te bouffer un max de ressources, comme si tu lançais un gros jeux vidéo "classique".

Citation Envoyé par stardeath  Voir le message
ensuite j'ai firefox 3.6, et avec 10 onglets j'arrive à faire 200 Mo d'occupation, donc plus la conso d'une appli 3d, j'ai du mal en quoi ça peut ne pas être massif.

Les développeurs de navigateurs font énormément d'efforts pour optimiser l'usage des ressources et ça se ressent vraiment, mais quand bien même, je pense que la vérité est ailleurs : si tu as un navigateur qui te bouffe 200Mo dans un coin, que tu lance une grosse application depuis ce navigateur ou à coté, ça reviendra toujours au même.
Généralement quand on lance une grosse application 3D on s'assure d'avoir un maximum de ressource disponible avant, dans le cas d'un navigateur avec 10 onglets qui consomment 200M on installe AdBlock, FlashBlock, BarTab, et on le redémarre avant de lancer son applications 3D dans un nouvel onglet.

Ok, je part toujours de l'hypothèse que les appels d'openGL depuis le moteur javascript du navigateur ne soient pas (ou pas trop) plus couteux que ceux faits depuis une application java (pour rester dans le cas d'un langage interprété), si vous voyez des raisons pour lesquels ça le serait, ça m'intéresse.

La grosse limitation actuelle apparemment ça serait plutôt du coté des textures, au niveau de leur téléchargement et leur rendu (toujours d'après l'équipe d'O3D) une fois que ça sera réglé je pense qu'on pourra avoir de véritables jeux 3D (surtout si on a une démocratisation de la connexion fibre optique)
Avatar de stardeath stardeath - Membre expert http://www.developpez.com
le 04/03/2011 à 18:05
la démo : 100Mo de ram avec iron et 20% de mon core 2 quad q9000

javascript n'est pas qu'un langage, c'est surement le pire langage qu'on peut avoir pour faire du jeu ou tout autre appli très conséquente (à moins que j'ai loupé le debugger et les autres outils qu'on se sert habituellement en dev)

effectivement les assets c'est comme un jeu normal, sauf qu'ils ne sont pas sur ton disque dur, et que même avec la fibre optique on reste dépendant d'un service en ligne.
Avatar de osopardo osopardo - Membre régulier http://www.developpez.com
le 04/03/2011 à 18:05
Citation Envoyé par stardeath  Voir le message
alors j'ai suffisamment vu râler sur ce forum à cause de type qui arrive à faire laguer un gros proc avec une bannière de pub en flash, et d'autre qui font du remake de quake 2 aussi en flash, donc on peut facilement extrapoler sur le fait que des gens vont le faire le crysis en webgl, ça c'est une certitude.

ensuite c'est pas la question de la légèreté du navigateur mais plutôt qu'une appli 3d donc plutôt lourde n'a rien à faire dans un navigateur. mais bon si tout le monde dit amen à un truc d'une inutilité absolue selon moi, bah je me tais (j'espère juste que ça sera désactivable un peu comme le plugin flash)

Ha ouais tiens, j'y avais même pas pensé, la bannière de pub en 3D ! Mon dieu
Effectivement, y'a plutôt intérêt à ce que ça puisse être désactivable

Sinon pour moi l'intérêt des applications web, 3D ou pas, c'est leur accessibilité depuis n'importe quel machine/terminal disposant d'un navigateur et d'une connexion Internet. Rien à installer, pas de mise à jour à faire, la seule limite étant un débit en adéquation avec l'application que l'on veut utiliser.

Les navigateurs modernes offrent une totale interopérabilité (ou presque) qui n'existe pas au niveau des système d'exploitation, on peut les voir comme des sortes de machine virtuelles qui amènent cette interopérabilité sur tous les système d'exploitation.
Un développement unique pour tous les navigateurs et donc toutes les plateformes, je pense que c'est pour ça qu'on en est arrivé à approcher la possibilité de lancer un Crysis dans un onglet de navigateur.
Avatar de math_lab math_lab - Membre éclairé http://www.developpez.com
le 04/03/2011 à 18:11
Il faut arrêter de croire que ça servira qu'a faire des jeux, aussi. Ça pourrait être utilisé pour des sites de vente d'objets 3D genre turbosquid ou on pourrait regarder les modèles en temps réel avant de les acheter (et la, c'est une petite dizaine de commandes a lancer par image, ce qui ne fera pas grand mal au javascript), ou alors tout simplement des images de background avec un shader dessus pour les pubs (genre effet de vagues quand on passe la souris dessus, qui ne demandera quasi rien coté javascript encore une fois).
Avatar de osopardo osopardo - Membre régulier http://www.developpez.com
le 04/03/2011 à 18:14
Citation Envoyé par stardeath  Voir le message
même avec la fibre optique on reste dépendant d'un service en ligne.

Yep, ça aussi c'est un problème, mais les éditeurs de jeux n'ont de toute façon pas attendu WebGL pour rendre leurs jeux dépendant de connexion internet. Ce sont juste de nouvelles possibilités offertes, les gens en font l'usage qu'il veulent.

Même si les "méchants" éditeurs ne le proposeront pas, ils y a toujours la possibilité d'héberger ces applications 3D sur son propre serveur, en ligne ou en locale, si c'est la partie client qui fait le gros du boulot, même avoir la partie serveur et la partie client sur le même PC ne devrait pas trop poser de problème.
Après c'est sûr que pour une utilisation hors ligne, c'est pas le plus simple
Avatar de Paul TOTH Paul TOTH - Expert éminent sénior http://www.developpez.com
le 04/03/2011 à 18:36
Citation Envoyé par LittleWhite  Voir le message
Bah en fait, l'utilisation de l'API est la meme (les appels a OpenGL) par contre, faudra toujours refaire le code (passage en javascript). Mais on garde une ressemblance tres forte, donc pas besoin de réapprendre toute une nouvelle bibliotheque. De plus, les programmes interactifs sont pleinement possible.

je n'ai pas encore trouvé un seul exemple qui n'utiliser pas de Shader...or ce n'est pas ce qu'on apprend classiquement pour débuter OpenGL...

d'ailleurs Nothing happens in WebGL without shaders !
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux http://www.developpez.com
le 04/03/2011 à 19:29
Citation Envoyé par Paul TOTH  Voir le message
je n'ai pas encore trouvé un seul exemple qui n'utiliser pas de Shader...or ce n'est pas ce qu'on apprend classiquement pour débuter OpenGL...

d'ailleurs Nothing happens in WebGL without shaders !

Etant donne que l'API est du OpenGL ES 2 et que celui ci n'a pas de pipeline fixe alors oui on est oblige de faire un rendu avec un shader (Comme dans DirectX 10 ; OpenGL 3 ...)
Avatar de sylvain230 sylvain230 - Membre à l'essai http://www.developpez.com
le 21/03/2011 à 16:58
WebGL c'est l'avenir !
Avatar de Flaburgan Flaburgan - Modérateur http://www.developpez.com
le 22/03/2011 à 10:07
T'as bien fait de t'inscrire pour poster ça ^^
Offres d'emploi IT
Webmarketer junior
Piste On Jobs - Ile de France - Paris (75000)
DEVELOPPEURS WEB H/F
CCLD RECRUTEMENT - Provence Alpes Côte d'Azur - Nice (06000)
Développeur webdev/windev junior++
VERIFONE - Languedoc Roussillon - Saint-Clément de Rivière

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Développement Web : Xavier Lecomte -