Comments on Tentative pitoyable pour faire du WebGL

ScanX77 (2012-02-28T20:50:23Z)

Est-ce que ça pourrait t'aider?
https://github.com/xtk/X#readme

Benoit Jacob (2012-01-29T22:20:13Z)

Bonjour, je travaille sur l'implementation de WebGL dans Firefox, et je voudrais repondre a tes commentaires. D'ailleurs, on se connait (un tout petit peu), de l'epoque ou je faisais des maths.

Concernant l'anticrenelage, il s'agit simplement d'un probleme de ton pilote OpenGL. L'option "antialias" est "true" par defaut dans WebGL, il n'y a donc rien de special a faire pour l'activer (par contre tu peux le desactiver en passant "false"). Chez moi sous Linux, ca marche bien avec le pilote proprio NVIDIA, mais ca ne marche pas avec le pilote radeon de Mesa 7.11. Je confirme que c'est bien dans Firefox 10 (qui sort dans 2 jours).

L'anticrenelage en question est de type multi-echantillonage (MSAA). Firefox et Chrome font du 2x2 par defaut, et dans Firefox tu peux changer la qualite en allant dans about:config, webgl.msaa-level. Oublie LINE_SMOOTH, ca n'existe pas dans WebGL comme tu peux le voir dans la spec.

Concernant les listes noires de pilotes, pour Firefox tout est ici:
https://wiki.mozilla.org/Blocklisting/Blocked_Graphics_Drivers
et il y a meme une page partagee avec les autres navigateurs, mais un peu moins a jour:
http://www.khronos.org/webgl/wiki/BlacklistsAndWhitelists
Je confirme que MOZ_GLX_IGNORE_BLACKLIST c'est du passe (c'etait seulement dans Firefox 4 et 5).

Tu dis que les plantages sont "le principal effet repertorie de WebGL", mais as-tu vraiment rencontre un plantage toi-meme? Si oui, sans aller jusqu'a te demander de faire un rapport de bug, peux-tu au moins aller dans about:crashes et me donner les liens correspondants?

Je ne comprends pas tes commentaires sur les specifications Khronos. Non, la spec OpenGL ES 2.0 ne se base pas sur une quelconque autre specification OpenGL. D'ailleurs OpenGL ES 2.0 n'est ni un sous-ensemble ni un sur-ensemble d'aucune version d'OpenGL. Je ne comprends pas non plus en quoi la spec WebGL est "inexistante": certes elle se base sur la spec OpenGL ES 2.0 et y renvoie souvent, et certes pour la moitie des fonctions WebGL, comme elles sont des equivalents directs de fonctions OpenGL ES 2.0, la spec ne fait que definir l'interface (l'IDL) et renvoyer a la spec OpenGL ES 2.0 pour les details, mais il me semble qu'a chaque fois qu'il y a quelque chose de non-trivial a dire, c'est dit dans la spec WebGL.

Tu dis aussi que "chaque navigateur a son implementation qui change tout le temps"; si par la tu veux dire qu'il y a des problemes de compatibilite, je te mets au defi de m'en decrire un seul! La realite est que WebGL est une des specs les mieux couvertes par une batterie de tests de conformite vraiment exhaustive, 9000 tests sur 330 pages html, <URL: https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/webgl-conformance-tests.html > et on pense arrive a 100% de conformite d'ici quelques semaines. Donc si tu connais la moindre incompatibilite, ca vaut vraiment le coup d'en faire part a la liste public_webgl.

Tu dis aussi ne pas voir comment tout s'agence entre WebGL, OpenGL / ES, WGL, GLX et compagnie. Du point de vue du programmeur Web, il n'y a que WebGL. C'est le navigateur qui fait le travail d'appeler tous ces *GL en arriere-boutique. Sous Windows, ca debouche sur des appels Direct3D.

Concernant la taille des points et l'epaisseur des lignes, c'est tres dependant du materiel. Tu dois appeler getParameter pour savoir l'etendue des valeurs autorisees. Pour cette raison, si tu veux controler finement ces parametres tout en preservant la portabilite, je te deconseille le trace de points et de lignes. Ce qu'on fait generalement a la place, c'est de tracer des rectangles tres fins en guise de lignes, etc. A ce moment-la, un fragment shader te permettra meme d'implementer l'anticrenelage de tes reves sans dependre de ton pilote.

L'API de WebGL veut rester le plus proche possible d'OpenGL ES 2.0 pour etre consensuelle (avancer vite sans perdre trop de temps a pinailler dans les comites) et eviter d'introduire des limitations artificielles. On reste volontairement a un tres bas niveau, l'idee etant qu'ensuite les fonctionnalites de haut niveau et les APIs jolies peuvent etre implementees par des bibliotheques telles que three.js.

W (2012-01-29T14:22:04Z)

Avec Iron 16.0.90.0 sous Linux 3.1 x86_64 + nouveau, les lignes sont un peu plus propres qu'avec Firefox 9, mais c'est dur à voir car elles sont blanches et non noires, sur le même fond gris clair. En tout cas ça reste plus proche du pâté que de la vidéo du post précédent.

DH (2012-01-29T12:10:47Z)

Chrome sous Ubuntu 11.10 : gros pâté noir qui tourne.
Firefox sous Ubuntu 1.10 : le gros pâté est un peu moins gras.

ooten (2012-01-29T10:24:23Z)

Sous Firefox aussi bien sous Linux que Windows, j'ai le même résultat que toi, un gros paté noir qui tourne.
Tiens c'est curieux tu as rattaché ce post à la catégorie math. C'est peut être pour le lier au précédent.

Aurelle (2012-01-29T09:50:10Z)

Sur une machine équipée de Windows XP et Firefox 9.0.1, on voit un objet complexe, ayant en effet une ressemblance avec le graphe précédent, qui se meut sur lui-même. Il est monochrome, noir. On distingue les traits à la périphérie, le centre étant quasi-uniformément noir probablement en raison de la densité des traits.

Fred le marin (2012-01-29T07:17:08Z)

"C'est ici le combat du Jour et de la Nuit"

Sur HERACLES, sous Windows 7 (OS 64 bits), je vois l'animation (avec le très gros pâté noir au centre, tout moucheté de petits points blancs).
Cela reste assez envoûtant tout de même, disons-le.
Sur TRITON, sous Ubuntu (OS 32 bits, mais c'est en fait la même machine [car dual-boot]), je ne vois rien que le blanc immaculé du fond de page !
(j'ai bien-sûr activé JavaScript dans les préférences de FireFox, mais ma carte graphique est de marque "NVIDIA", et l'OpenGL n'est sans doute pas géré dans ce cas ? [la version du "kernel" LINUX est >= 3].

P.S. (hors sujet) : "Les Misérables" furent publiés voici tout juste 150 ans, et c'est (hélas) encore d'actualité (et je ne parle pas au sujet de ta "pitoyable tentative", Ruxor)…


You can post a comment using the following fields:
Name or nick (mandatory):
Web site URL (optional):
Email address (optional, will not appear):
Identifier phrase (optional, see below):
Attempt to remember the values above?
The comment itself (mandatory):

Optional message for moderator (hidden to others):

Spam protection: please enter below the following signs in reverse order: 1b4c62


Recent comments