begin process at 2012 05 28 07:31:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > 3D AVEC WEBGL

3D AVEC WEBGL


 Information sur la source

Note :
Aucune note
Catégorie :Graphique Classé sous :3D, WebGL, Texture, Shader, Alphabending Niveau :Initié Date de création :29/06/2011 Date de mise à jour :19/07/2011 12:22:57 Vu / téléchargé :2 808 / 168

Auteur : Hakumbaya

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Il y a maintenant quelques semaines, j'ai soumis ici un codes sources de moteur 3D sans webGL, à qui manquait de nombreuses fonctionnalités, était peu performant, et dont la méthode de texturing etait approximative est difficile à prendre en main.

Donc comme promis, voici un aperçu de la 3D AVEC webGL. Pour comprendre ce code sources, vous devrez deja avoir quelques acquis sur le fonctionnement des moteurs 3D, et bien maitriser les expressions vectorielles et matricielles. Cette technologie etant récentes, elle n'est malheureusement pas cross brother (Firefox à partir de 5.0 pour toutes les fonctionnalités, Chrome à partir de la version 9.0). Cette source fonctionne bien entendu toujours mieux sous chrome. Vous aurez également besoin d'un serveur local HTTP, comme un Wamp ou un easy PHP car l'accès aux ressources comme les textures sont sont pas autorisées localement.

Vous trouverez dans cette sources :
- un fichier index.htm : Il regroupe les appels à l'objet WebGL que j'ai crée pour cette démonstration et lance l’aperçu
- un fichier webgl.js : contient les objets utilisé par la classe webGL (Telle quel la classe de gestion du FPS, ou le gestionnaires de vecteur/matrice minifié => pour ceux qui se le demande, c'est un juste milieu entre sylvesterJS et glMatrix 0.9.5).
- un dossier contant les textures.

Ce code source n'est pas très commenté car tout expliqué serai très long en un seul bloc, mais pour ceux qui veulent apprendre pas à pas, ce que je conseille fort, voici un tutorials très bien fait qui vulgarise assez bien les mécaniques de WebGL : http://learningwebgl.com/blog/?page_id=1217
Je me suis bien aidé de ce dernier pour comprendre plus en profondeur comment fonctionne webGL.

Pour ces question de performances, les fonctionnalités de "specular" (brillance des textures) et de render-to-texture (rendu sur une texture) ne sont pas implémentées. J'ai également la peine de limiter à 16 le nombreux de sources lumineuses ponctuelle sur une texture afin d'eviter des débordement de memoire, et du clipping à l'affichage.

Cette source à pour unique but de faire la démonstration de webGL, mais n'est pas une références. WebGL est encore une technologie récente qui est vouée à évoluer, et donc il n'est pas diffusé de manuel officiel, il est possible que certaines notions soit erronées faut de compréhension.

Pour déplacer le point de vue, voici les commandes (azerty) :
R : avancer
F : reculer
D : pas à gauche
G : pas à droite
Q : aller vers le bas
E : aller vers le haut

Pour changer l'angle du point de vue :
Maintenez le clic souris enfoncée et déplacez le souris pour une rotation relative sur l'axe Y et Z.

Source

  • Tout est dans le zip
Tout est dans le zip

 Conclusion

Les opportunités que webGL ouvrent sont infinies, mais son avancée et brusque, instables et parfois dangereuse (faille trouvée par un hacker exploitant webGL pour recuperer des screen shot de navigateur ayant un moteur de rendu de type gecko via une simple injection JS...c'est fou non ?!?).

Je vous conseille donc de vous y intéresser car c'est passionnant, mais il est inutile dans l’immédiat de s'y jeter corps et âme tant qu'un vrai outil finalisé n'aura pas vu le jour.
Je suis ouvert à vos question, mais jetez un oeil au tutorial avant, tout les point exploité dans cette sources sont expliqués sur ce tutorial ^^.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

19 juillet 2011 12:22:57 :
[Update 19-07-2011] Corrections des problèmes de préchargement d'images. Intégrations de modèle fil de fer (mesh) avec texture pré-mappées. Intégrations du fond de scène, non finalisées dans l'attente de la bonne implémentation des rotations de fond en CSS3 Assouplissement du gestionnaire d'exception. Correction de bug de comportement de lumières sur des vecteurs normaux mal implementées et sous alphabending.

 Sources du même auteur

Source avec Zip Source avec une capture 3D AVEC WEBGL + MESH
Source avec Zip PLAYER VIDEO HTML À BONDER
Source avec Zip Source avec une capture CANVAS I3D : 3D SOUS JAVASCRIPT SANS WEGGL

 Sources de la même categorie

Source avec Zip JDMATH-MINI.JS : GÉNÉRATION D'EXPRESSION MATHÉMATIQUE par jdmcreator
Source avec une capture SPHERE 3D DÉFORMABLE par phm
Source avec Zip Source avec une capture EFFET DE ROTATION A 360° D'IMAGE AVEC ACCELERATION DECELERAT... par kazma
Source avec Zip Source avec une capture PETIT LOGICIEL DE DESSIN, RETOUCHE AVEC CANVAS par kazma
Source avec Zip Source avec une capture CALCULATRICE HEURE par m22001111

 Sources en rapport avec celle ci

Source avec une capture SPHERE 3D DÉFORMABLE par phm
Source avec Zip Source avec une capture 3D AVEC WEBGL + MESH par Hakumbaya
Source avec Zip Source avec une capture CANVAS I3D : 3D SOUS JAVASCRIPT SANS WEGGL par Hakumbaya
Source avec Zip SVG3DCAMEMBERT par opossum_farceur
Source avec Zip Source avec une capture ALBUM PHOTOS "3D" par adelami

Commentaires et avis

Commentaire de Hakumbaya le 29/06/2011 16:53:41

A oui, petit détails, il arrive parfois que le moteur se lance avant que les texture ne soit complétement chargées, c'est un petit oublie de ma part, pour que les texture soit chargée, il faut que l'image soit preloadée, mais aussi quelle soit transformée en prétexture webGL avant d'être mâchouillée par le moteur de rendu, je n'ai pas trouver comment contrôler ce préchargement, c'est pourquoi il faut parfois faire un petit F5 ou 2 quand on lance la première fois le script sous Firefox et chrome ^^

Commentaire de Hakumbaya le 04/07/2011 11:53:49

Pour ceux qui sont sous firefox 5.0 voici la manip pour activer WebGL.
Rendez vous sur l'url "about:config"

Rechercher "webgl" et passez les parametres suivants à "true"
- webgl.force_enabled
- webgl.verbose

Je vous conseille vivement une fois terminé de repasser ces parametres à false, car les activer ouvre une faille de sécurité navigateur.

Commentaire de Romano58 le 11/07/2011 12:00:17

Une version online serait la bienvenue.

et petite correction rigolote:
[...] elle n'est malheureusement pas cross brother [...]

Et cross sister, elle l'est? :) Bon, et sinon, si elle fonctionne sur firefox et chrome (quelques soit leurs version tant qu'ils prennent en charge webgl), bah si c'est cross BROWSER :)

Commentaire de Hakumbaya le 19/07/2011 12:14:19

Cross browser = Techno compatible tout navigateur de manière native
Ce n'est pas le cas pour IE, Safari, Opera, NetScape, (Je vous épargne les plus obscures) ainsi que chrome et FF non récent.

Pour ceux qui cherchent la manipulation pour activer WebGL sous FF :
Rendez vous sur le "about:config" puis rechercher les paramètres suivants :
webgl.force-enabled => à passer à true (Pensez bien à le repasser à false une fois fini, ce paramètres à "true" ouvre des failles de sécurité)
webgl.verbose => true ou false, cela depend des config, mais je n'ai pas encore trouvé l'influence de ce paramètre
webgl.prefer-native-gl => à passer si à true si vous disposez des composants openGL natifs

Je proposerai prochainement une version un peu plus aboutie avec des modèle pré-généré, avec une texturing plus facile.

Commentaire de Romano58 le 23/07/2011 11:09:13

D'accord donc un programme qui ce compile pour windows et linux, mais pas pour mac.... c'est pas un programme cross plate-forme car il ne marche pas sur tout les OS. Ok Ok...

Donc effectivement, la marmotte mais le chocolats dans le papiers d'alu

Commentaire de Hakumbaya le 25/07/2011 10:34:50

Pour ce qui est des applications, sur la terminologie, une application est multiplateforme à partir du moment ou elle fonctionne sur plus d'une plateforme : "multiplateforme" indique que l'application dispose des éléments pour dialoguer par des appels système à plusieurs OS, et en général pour des raisons pratiques, est compilé un setup d'installation de cette application par noyau d'OS distinct. Quand sa bonne exécution se fait sans tenir compte de l'OS qui la supporte (l'application ne nécessite peu ou pas d'appel à des procédures système), on parle d'une application portable, s'exécutant en général sans installation, et s'adaptant au SGF courant ^^.

Dans le cas de webGL, il est effectivement "multiplateforme" car basé sur OpenGL disposant de nombreuses versions s'adaptant aux OS, voire parfois à du matériel spécifique, mais pas "portable" dans le sens ou il exploite des composants intimement lié au système d'exploitation où son exécution est effectuée ^^.

C'est pour cela que WebGL n'existe pas sous Internet explorer, Microsoft prétextant un manque de sécurité de la nouvelle technologie, mais qui à mon avis à plus tendance à bouder des produits du monde libre. Pour ce qui est de Mac, l'implémentation de cette technologie est prévue sous safari à partir de la version Snow léopard 10.6, mais toujours pas de nouvelles, il semblerai que Mac travaille plutôt sur leur propre composant 3D web dans l'optique de l'adapter aux techno. téléphone (Équivalent de WebGL pour Iphone).

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Diaporama 3D [ par walimoha ] J'ai installé le diaporama 3D, mais le nombre d'image est limité à 12 et il n'ya pas moyen d'en rajouter! Comment faire pour pouvoir afficher plusieur lecture objet 3D [ par le ptit gob ] Bonjour,bonjour, Je ne connais pas ce langage, alors soyez indulgent merci. Je dois afficher un objet 3D dans ma page web mais je ne sais pas comment transition entre deux textures [ par aze555666 ] Bonjour.J'ai un site sur lequel je propose aux internautes de créer des quizz, et ils peuvent choisir texture+couleur de police.Je voudrais maint Graphisme en Javascript [ par Arto_8000 ] Quoique non standard la plupart des navigateurs supportent maintenant l'objet canvas en javascript pour faire du 2d/3d. Au niveau du 3d je doute que c scroll icons 3D [ par hugosk8 ] Bonjour sa fait 2 jour que je cherche un programme...Javais vue ce programme à m.net je sais pi si vous écoutier sa c'est a musique plus en tout les c cube 3d(besoin d'aide) [ par Tunis_khalifa ] je veux determiner les coordonees d un cube3d qui est en animation lors de l appui sur une touche existe t il une methode (ou un code ) qui peut resou Affichage image caroussel 3D [ par webide ] Bonjour,J'ais un souci d'affichage avec le script Caroussel 3D tiré du site hot ajax Sur mon pc jQuery, carrousel 3d [ par juliesunset ] Bonjour! Je m'adresse à vous en désespoir de cause, j'ignore si je suis au bon endroit (si ce n'est pas le cas, lancé moi de banane![^^happy17])... Problème avec un manège 3D Javascript. [ par romainroffi ] Bonjour tout le monde. Je suis en train de faire un site j'ai mis un manège 3D dans ma page. Ce manège 3D je l'ai trouvé sur ce site: [url=http


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,700 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales