CANVAS I3D : 3D SOUS JAVASCRIPT SANS WEGGL

Hakumbaya Messages postés 41 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 17 décembre 2010 - 11 oct. 2010 à 03:02
Hakumbaya Messages postés 41 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 17 décembre 2010 - 18 oct. 2010 à 15:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52371-canvas-i3d-3d-sous-javascript-sans-weggl

Hakumbaya Messages postés 41 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 17 décembre 2010
18 oct. 2010 à 15:37
Les "parseInt" n'ont en soi aucune utilité, que le calcul soit entier ou flottant, la différence ne se fait pas vraiment sentir, c'est uniquement fait pour de l'affichage en console soit lisible ^^.

Pour ce qui est du code en commentaire, il est présent uniquement pour donner des pistes d'optimisation, mais n'ont eux aussi aucune utilisé. Enfin la restriction fait pour ne pas afficher les objets dans le dos de la camera est que si on retire cette restriction, étant donné que les facettes n'ont pas de vecteur normal d'affichage (affichage des 2 cotés de la facette), et les formules trigonométriques réduites, un objet dans le dos de la camera est affiché dans son champs de vision à l'envers, un peu comme le ferai une symétrie centrale ^^.

Pour ce que qui est du tri bulle, effectivement, j'avoue que je suis passé très très vite dessus, et que ce code aurait mérite plutôt un vrai quick sort, mais la encore, ce n'est qu'un exemple qui n'aura plus aucune valeur des que WebGL sera disponible sous les principaux navigateurs ^^
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
18 oct. 2010 à 13:17
C'est pas mal, mais c'est dommage que certaines parties du code restent un peu baclees, comme ton tri a bulles (tu as oublie le "--nbobjects;" avant la fin de la boucle while).
Dans RanderRedraw(), on dirait que tu as essaye de ne pas traiter les objets derriere la camera, mais la moitie du code est commentee. Dans ce cas, tu devrais commenter aussi les lignes 227 a 230 qui ne sont plus utiles et consomment du temps.

J'ai du mal a voir l'interet des parseInt() dans Projection2D. Est-ce que c'est pour convertir des floats en int ? Est-ce que Math.floor() ne marcherait pas mieux dans ce cas ? (ou alors j'ai tout faux :o) )

Malgre ces petits defauts, ton code est tres clair et plaisant a lire.
Merci de le partager avec nous !
MangaII Messages postés 129 Date d'inscription dimanche 9 décembre 2001 Statut Membre Dernière intervention 12 janvier 2009
18 oct. 2010 à 08:57
Génial !
vraiment un super boulot ...

A titre info, ça fonctionne très bien sous Linux (testé avec Firefox et Chrome) ...
Vivement que WebGL soit implémenté partout ... on va pouvoir se lâcher !

Merci pour cette source.
Nazgul59 Messages postés 2 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 27 mai 2010
16 oct. 2010 à 20:06
Excellent script et bon exemple de ce que Javascript a dans le ventre !

Un petit détail, pour faire marcher le script chez moi j'ai du renommer la variable "console" qui était apparemment un mot réservé en "console2" pour que ça fonctionne.
Hakumbaya Messages postés 41 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 17 décembre 2010
11 oct. 2010 à 03:14
Et pour ceux qui se demande ce qui cloche avec le texturing "affine", vous trouverez ici un exemple plus parlant ^^ : http://en.wikipedia.org/wiki/Texture_mapping
Hakumbaya Messages postés 41 Date d'inscription dimanche 10 octobre 2004 Statut Membre Dernière intervention 17 décembre 2010
11 oct. 2010 à 03:02
Ah oui, petit oubli !
Pour le systeme de texturing, il est grandement simplifié, ce qui implique que les facettes doit disposer d'un bonne orientation pour le texturing.

Exemple : Voici un carré
P1-----P2
| |
| |
P3-----P4

Le fichier de texture correspond à ce carré. La facette est un triangle donc la texture cera extraite du carré precedent selon les points P1-P2-P4. P1-P2 represente le boird superieur de l'image, le bord P2-P3 represente le bord droit de la texture. La deformation de cette texture pour une facette F1,F2,F3 respectera toujours ce decoupage, le moteur n'integre pas de veritable Map Texturing.
Rejoignez-nous