1 / 92

VRML 97

VRML 97. Julien Lenoir (Thanks to Stéphane LOUIS DIT PICARD) email : lenoir@lifl.fr. Historique & Présentation . Pourquoi de la 3D ?. Enrichissement du Web Plusieurs avantages à la 3D Conception d’objet 3D (architecture, mécanique,….) TéléVente (présentation, support, ….)

duncan
Download Presentation

VRML 97

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VRML 97 Julien Lenoir(Thanks to Stéphane LOUIS DIT PICARD) email : lenoir@lifl.fr

  2. Historique & Présentation

  3. Pourquoi de la 3D ? • Enrichissement du Web • Plusieurs avantages à la 3D • Conception d’objet 3D (architecture, mécanique,….) • TéléVente (présentation, support, ….) • Reconstitution historique (monuments, faits, …. ) • Apprentissage (médecine, chimie, ……)

  4. La naissance de VRML 1.0 • 1991: Naissance d’HTML [Beners-Lee] • 1992 : Création du format Open Inventor [SGI] • Mai 1994 : Présentation des travaux de Marc Pesce & Tony Parisi sur les interfaces de Réalité Virtuelle • Création d’une « mailing list » pour définir un langage universel de modélisation 3D

  5. VRML 1.0 • Octobre 1994 : Naissance de VRML 1.0 (basé sur le format Open Inventor de SGI): • Indépendance de la plate-forme • Passage sur des lignes bas-débits (modems) • Format ASCII

  6. L’évolution de la norme VRML • Début 1996 : Proposition d’extension • Prise en compte de la dynamique des « mondes virtuels » • Août 96 : Naissance de VRML 2.0 • Décembre 97 : Normalisation ISO • VRML 2.0 (aussi appelé VRML97)

  7. VRML 97 • Principales améliorations par rapport à la version 1.0 : • Interaction • Animation des scènes • Prototypage d’objets • Amélioration du réalisme

  8. L’avenir : X3D • Multi-utilisateurs • Encore plus de réalisme • Coopération avec les nouveaux standards • D-HTML • MPEG 4 • XML

  9. Le succès de VRML • Standard normalisé et libre de droit • Accessibilité : • format ascii  édition/compréhension simple • nombreux browsers sur de nombreux OS (navigateur WEB + Plug-in VRML) • une documentation (http://www.vrml.org)

  10. Structure &Format Général

  11. Un exemple simple • #VRML V2.0 utf8Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Sphere { radius 5.0 }}

  12. L’exemple : l’entête du fichier • #VRML 2.0 utf8 • # Symbole de commentaires • VRML 2.0 fichier contenant une description VRML au format 2.0 • utf8 format utilisé pour coder le texte

  13. L’exemple : la description géométrique • Shape {...}  le nœud pour définir un objet visible • appareance {...}  paramètre l’attribut visuel de l’objet • geometry {...}  paramètre la géométrie de l’objet

  14. Notion de champs, de nœud et d’arbre • Un nœud est composé de champs : • chaque champs est typé • chaque champs permet de configurer le nœud • Une hiérarchie de nœuds forme un arbre : • des nœuds spéciaux (appelés « nœud de groupe ») permettent de créer la hiérarchie

  15. Dans l’exemple • Le nœud Shape est composé : • un champs appearance de type Appearance • un champs geometry de type SFNode (i.e. n ’importe quel nœud) • Le nœud Appearance est composé : • un champs material de type Material • Le nœud Material est composé : • un champs diffuseColor de type SFColor

  16. Les types de base

  17. Type simple : • SFxxx E • Type tableau : • MFxxx  [E1, E2, …, En] • Modes d’accès : • EventIn  écriture • EventOut  lecture • ExposedField  lecture/écriture

  18. Booléen : • SFBool • MFBool n’existe pas ! • Vecteur 2D (coordonnées dans un plan) • SFVec2f  X Y • MFVec2f  [X1 Y1, …, Xn Yn] • Vecteur 3D (position, scale) : • SFVec3f  X Y Z • MFVec3f  [X1 Y1 Z1, …, Xn Yn Zn]

  19. Rotation : • SFRotation  X Y Z angle (en radians) • MFRotation  [X1 Y1 Z1 angle1, ..., Xn Yn Zn anglen] • Couleur : • SFColor  R G B • MFColor  [R1 G1 B1, …, Rn Gn Bn] • Chaine de caractères : • SFString  “chaine” • MFString  [“chaine1”, …, “chainen”]

  20. Nœud : contient n’importe quel nœud VRML • SFNode  nœud • MFNode  [nœud1, …, nœudn]

  21. Quelques nœuds géométriquessimples

  22. Une boite 3D geometry Box { size X Y Z }

  23. Un cône geometry Cone { bottomRadius R height H side TRUE/FALSE bottom TRUE/FALSE }

  24. Un cylindre geometry Cylinder { radius R height H side TRUE/FALSE top TRUE/FALSE bottom TRUE/FALSE }

  25. Une sphère geometry Sphere { radius R }

  26. L ’apparence :Couleur&Texture

  27. Le nœud « Material » • diffuseColor  Couleur de l’objet • ambientIntensity  Proportion de réflexion (0-1) • specularColor  Couleur du spéculaire • emissiveColor  Lumière propre • shininess  Brillance (0-1) • transparency  Degré de transparence (0-1)

  28. Les textures • 3 formats de texture reconnus : • statiques : images au format jpeg & png • animées : vidéo au format mpeg texture ImageTexture { url    "texture.jpg" repeatS TRUE/FALSE repeatT TRUE/FALSE }

  29. Les nœudsgéométriquesplus complexes

  30. La « facettisation » • Modélisation courante • Nombreux modeleurs • Formes complexes

  31. Format général : la notion d’index Shape { geometry IndexedFaceSet { coord Coordinate { point [x1 y1 z1, x2 y2 z2, … ] } coordIndex [ 0,1,2,-1, 4,5,1,-1, ... ] }} Un point 3D Une facette

  32. Exemple : Une pyramide geometry IndexedFaceSet { coord Coordinate { point [ 1 0 0, 0 1 0, 1 1 0, 0.5 0.5 1 ] } coordIndex [ 0,1,2,-1 #facette 1 0,1,3,-1 #facette 2 0,2,3,-1 #facette 3 1,2,3,-1 #facette 4 ]}

  33. La couleur des facettes coordIndex […]color Color { color [ 1 0 0, 0 1 0, 0 0 1, 1 0 1, ] } colorPerVertex FALSE

  34. Des textures & des facettes • Placage par défaut sur une boîte englobante • Problème de déformation de la texture • Placage précis: • utilisation du nœudTextureCoordinate

  35. L’extrusion • Extrusion

  36. Un exemple (1/2) geometry Extrusion { crossSection [ 1 0, .67 -.27, .71 -.71, .27 -.67, 0 -1, -.27 -.67, -.71 -.71, -.67 -.27, -1 0, -.67 .27, -.71 .71, -.27 .67, 0 1, .27 .67, .71 .71, .67 .27, 1 0 ] spine [ 0 0 0, 0 0 -6 ] beginCap TRUE endCap TRUE solid TRUE }

  37. Un exemple (2/2) • Résultat visuel :

  38. Le placement des objets

  39. Les axes Y • Objet centré en (0,0,0) • Comment placer les objets ? X Z

  40. Le point de vue Viewpoint { position 0 0 10 orientation 0 0 1 0 fieldOfView 0.785 # pi/4 description "..." jump TRUE } Y X Z

  41. Group Shape Shape cube Le nœud « Group » • Pour grouper plusieurs objets Group { children [ Shape { geometry cylinder {} } , Shape { geometry cube {} } ] } cylinder

  42. Transform Shape Appareance Material Cylinder Le nœud « Transform » Transform { translation 0.3 0.2 0.1 rotation 0.0 0.0 1.0 3.1415 children [ Shape { appearance Appereance { material Material {} } geometry Cylinder {} } ] }

  43. Les différentes transformations possibles • Une translation de type SFVec3f • Une rotation de type SFRotation • Une mise à l’échelle (scale) de type SFVecf3f

  44. Ordre des transformations Transform { translation tx ty tz rotation rx ry rz angle scale sx sy sz} 3 2 1 ATTENTION A LA COMPOSITION DES TRANSFORMATIONS

  45. Propagation des transformations Objet 1 Transform Objet 2 Transform Objet 3 Transform

  46. Réutilisation&Prototypage

  47. DEF & USE • DEF nom_du_nœud nœud {...} • USE nom_du_nœud

  48. Exemple de DEF & USE DEF cuberouge Shape { appearance Appearance { material Material { diffuseColor 1.0 0 0 } } geometry Box {}} ... Transform { rotation ... children [ USE cuberouge ]} ...

  49. Les PROTO • Réutilisation des objets comme pour le DEF • Création de nouveaux nœuds • Paramétrage possible

  50. Syntaxe Générale PROTO nom_du_proto [ field type nom_param valeurs …]{ # définition de l’objet}

More Related