Java 3D DESS TNI 2000-2001 Université MONTPELLIER II Xavier ANDREANI.

Slides:



Advertisements
Présentations similaires
FORMATION API GEOPORTAIL
Advertisements

The Reyes Image Rendering Architecture
Modèles empiriques d’éclairement
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
VI50 – TP3 Introduction à Virtools. Virtools Virtools Media Design 3DS, Maya, Lightwave… Sound Design wav, mp3… Texture, 2D interface jpg, bmp… Specific.
INTRODUCTION.
12 novembre 2012 Grégory Petit
A la prise de vue et au labo numérique
Installation des programmes indispensables et utiles :
Traitement de texte ++.
Prologue : les premiers préparatifs Première étape : Ouvrir le logiciel de création de pages au format HTML (pages Web) Deuxième étape : enregistrer la.
Créer une animation simple Gif avec ImageReady.
XML-Family Web Services Description Language W.S.D.L.
Présentation Struts1-JaxB
Algorithmique et Programmation
IFT3730: Infographie 3D Transformations Géométriques
Création d'un diaporama Création d'un diaporama
Optique : Les représentations visuelles du monde
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
Modélisation géométrique à l’aide d’un maillage
IFT2740 : Outils de l'infographie 3D Systèmes et modèles graphiques
Salon Interactif Université dAvignon Projet M2 MUNOZ Nicolas Année 2007/2008.
IFT3355: Infographie Transformations Géométriques
Les assertions en Java.
PARTIE OPTIQUE Rappels de cinquième
4COII Les lentilles..
1 Modèles de particules Reeves, W. T., "Particle Systems - A technique for Modeling a Class of Fuzzy Objects," SIGGRAPH 83, Reeves, W. T., and.
Les présentations assistées par ordinateur (préAO)
Tutoriel java3D Projet tutore.
Conception et développement d ’une interface entre un environnement de réalité virtuelle et un périphérique d ’interaction.
La Lumière et les couleurs
II- Loi de Biot et Savart
INTRODUCTION.
VISITE AUTOMATIQUE GUIDÉE SOUS VREng. Fonctionnement de VREng Avatar représentant l’utilisateur Chat permettant aux utilisateurs de discuter Panel de.
OPTIQUE GÉOMETRIQUE.
LES SOURCES DE LUMIÈRE I. COMMENT PRODUIRE DE LA LUMIÈRE ?
Modélisation géométrique
MAMAMAMA 2-6 mai ‘11. Introduction Les 5 parties de l'interface utilisateur sont : arborescence - contient la liste des objets dans le monde actuel.
Extension X3D pour Vreng Pascal Chambon ENST 2007.
Les principes de la modélisation de systèmes
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Spectres lumineux I. Les spectres d'émission 1. Définition
Electrostatique- Chap.2 CHAPITRE 2 CHAMP ELECTROSTATIQUE Objectif :
OBSERVER COULEURS ET IMAGES.
Création en images de Synthèse Modèles de rendu d’une scène 3D
LA PROJECTION ORTHOGONALE AUX NORMES EUROPEENNNES
Je Programme mon ordinateur. Programmer, c’est quoi ?
Décomposition et paramétrage des algorithmes
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Présentation générale
Nexeto.  Entreprise ◦ ADINFO ◦ Nexeto  Besoins ◦ Objectifs ◦ Outils/Moyens ◦ ATS ◦ Planning  Projet de stage ◦ Conception ◦ Réalisation  Bilan  Résultats.
Traitement de texte +.
SIMulateur Aquitain de Procédés d’ Incinération
1 Déformation Bi-manuelle en Réalité Virtuelle Encadrants : Antonio Capobianco, Jérôme Grosjean Étudiants : Michaël Kolomytzeff, Manuel Veit.
CHAPITRE III Calcul vectoriel
Chapitre 3: Translation et Vecteurs
Initiation au JavaScript
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 8 Rendu de surfaces –Modèles de rendu de surfaces –Illumination de la scène –Sources lumineuses –Composante.
Equipe synthèse d ’images et réalité virtuelle IRIT-UPS Toulouse Surfaces implicites Les différents modèles analytiques.
LCIN4U73 Bases géométriques de l’imagerie
Comprendre le SGBDR Microsoft Access – partie 2
31/05/2007Projet Master 11 Présentation ludique de la recherche opérationnelle à la fête de la science Année universitaire 2006/2007 Sylvain FIX Julien.
Premières notions de la 3D
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Image Ready SI28 _ P09 MACHIN Alexandre BRUTEL Aline.
Dreamweaver le retour Avec Les Formulaires Les Calques
FORMULAIRES FOMULAIRE Permet à l’utilisateur d’entrer des renseignements le concernant. Utilisation –Inscription sur un site –Mise à jour d’une base.
Dreamweaver 2 Plan 1.Calques 2.CSS 3.Modèles 4.Comportements 5.Formulaires 6.Mise en ligne 1 Timothée Devaux Myriam Roudy Dreamweaver 2 Printemps 2008.
Elise Pierrot, GSU04 ImageReady, traitement d’image pour le WEB Présentation SI28.
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
Transcription de la présentation:

Java 3D DESS TNI 2000-2001 Université MONTPELLIER II Xavier ANDREANI

Plan Introduction Objets pour la 3D Transformations Méchanisme interne Scène 3D Univers virtuel Transformations Méchanisme interne Affichage Compilation Animations Interactions Structure d’un objet 3D Apparence Textures Lumières Material Géométrie Créer ses propres objets Retour sur les lumières Conclusion Bibliographie

Introduction Java 3D est destiné à l’affichage 3D sous java. Conçu dans le but de faciliter la programmation. Très bon modèle de hiérarchie objet générique pour représenter un univers 3D. Justifié par la portabilité de java: Java 3D est disponible sous Windows, Solaris, SPARC, Linux, HP-UX, SGI Irix.

Objets Pour La 3D Univers virtuel VirtualUniverse Scène 3D à afficher BranchGroup Oeil de l’observateur ViewPlatForm Ecran sur lequel est projeté la scène canvas3d Les autres objets

Scène 3D Représentée sous la forme d’un arbre (graphe) d’objets. Les feuilles de l’arbre sont les objets à afficher. Les autres noeuds définissent des regroupements d’objets (pour y appliquer des transformations...). Le groupe englobant (BranchGroup pour la racine) est à passer en référence à l’univers virtuel.

Univers Virtuel Définit la partie view du graphe de la scène L’oeil de l’observateur ViewPlatform L’écran de projection canvas3d

Transformations Tous les objets du graphe scénique sont crées à l’origine du repère (0,0,0), d’où l’utilité des transformations pour les positionner. On associe à chaque noeud TransformGroup, une transformation: transform3d. Les transformations élémentaires disponibles sont: Rotations. Rotation selon l’axe X. Rotation selon l’axe Y. Rotation selon l’axe Z. Translation. Retaillage (zoom). Autres transformations obtenues par composition par la méthode mul de Transform3d. Attention à l’ordre du produit!!! Pour 1 objet, équivalence entre une transformation appliqué à cet objet, et une transformation appliqué à l’objet ViewPlatform (déplacement de l’observateur dans le monde).

Affichage L’affichage effectue un parcours de graphe, de bas en haut, des feuilles vers la racine. Chaque branche de l’arbre détermine entièrement les propriétés de sa feuille. Pour chaque feuille, Java 3D parcours donc les parents jusqu’à la racine.

Compilation Possibilité d’accélérer l’affichage grâce à la méthode compile de BranchGroup. C’est une transformation du graphe scénique en une structure interne rapidement manipulable. Les propriétés des noeuds doivent donc être précisées avant la compilation: accessible en lecture, écriture (animation...)... La compilation peut effectuer des optimisations (non documentées) dans le graphe scénique (composition de plusieurs transformations, regroupement d’objets qui subissent la même transformation, ...).

Animations Il s’agit d’appliquer en boucle une transformation, une fois l’affichage effectué. Pour celà, il suffit d’ajouter à l’objet TransformGroup en question un enfant Interpolator qui contient: Une fonction de rotation au cours du temps alpha (nombre de répétitions de la transformation ou -1 si infini, et intervalle de temps entre 2 transformations). Le comportement à appliquer périodiquement. Une zone d’influence BoundingSphere, en dehors de laquelle l’animation ne sera plus effectuée. Les Interpolator correspondant aux 3 transformations élémentaires sont fournis (RotationInterpolator, PositionPathInterpolator, ScaleInterpolator). Attention: ne pas oublier avant la compilation de donner le droit en écriture au noeud de la transformation!!!

Interactions Il s’agit de provoquer un effet de bord (modification) sur graphe scénique, en fonction d’un événement (clavier, souris...). L’objet qui sert à ça est Behavior, toujours à ajouter comme enfant du TransformGroup associé, et contient: Les événements à détecter (définis dans initialize par des wakeupOn(AWTEvent)). L’action à effectuer. Une zone d’influence BoundingSphere à l’intérieur de laquelle est récupéré l’événement. Attention: rappellez initialize pour réenregistrer les événements à détecter après l’exécution de l’action.

Structure D’un Objet 3D Un objet 3D (Shape3d) se compose de 2 parties distinctes: Son apparence qui précise comment il doit être affiché Appearance Sa géométrie qui détaille sa forme Geometry

Apparence Pour rendre nos objets visibles, il faut leur associer une Appearence qui définit plusieurs choses: La couleur de l’objet La texture de l’objet (la couleur est ignorée) Sa transparence (couche alpha, cf TP Photoshop) Le type de rendu (plein, filaire...) Le comportement de l’objet quand il est éclairé (la couleur ci-dessus est alors ignorée) …

Textures Il s’agit d’habiller un objet en lui appliquant une image sur chacune de ces faces. Pour cela, sur chaque face il faut définir un repère (qui par défaut sera le repère unitaire).

Lumières Il existe différents types de lumières pour éclairer vos objets: Lumières ambiantes éclairant indifféremment toute la scène (éclairage global ne donnant pas d’effet de volume) AmbiantLight Lumière directionnelle selon un vecteur (éclairage calculé en fonction des normales aux surfaces, une surface orthogonale à ce vecteur sera uniforméménet éclairée) DirectionalLight Lumière ponctuelle, émettant à partir d’une source (vecteurs directionnels concentriques) PointLight La même, réduite à un cône d’émission SpotLight Les lumières ont une couleur, que l’on choisit blanche pour reproduire la lumière naturelle (celle du soleil) ou la lumière d’une lampe

Material Afin qu’un objet soit sensible aux rayons lumineux, il faut fournir à son Appearance, un objet Material qui décrit: La couleur renvoyée par l’objet lorsqu’il est éclairé par une lumière ambiante blanche ambiantColor La couleur émise par l’objet (utile pour une lampe, noir sinon) emissiveColor La teinte de l’objet éclairé (proche de notre définition « naturelle » de la couleur d’un objet) diffuseColor La couleur des tâches de lumières (brillance sur un métal par exemple: c’est le reflet de la source lumineuse) specularColor La brillance de l’objet shininess

Géométrie Les primitives de Java3D sont toutes définies à partir de triangles 2D rassemblés pour former un volume. En effet, le calcul 3D au niveau d’un processeur se fait sur des triangles. Il n’y a donc pas au préalable à décomposer l’objet en triangles. Plus généralement, la géométrie d’un objet 3D, se compose d’objets points, lignes, triangles, quadrilatères, et constructions géométriques utiles: LineStripArray, TriangleStripArray, TriangleFanArray

Créer Ses Propres Objets Comme expliqué précédemment, il s’agit donc d’assembler des objets 2D représentant les faces de notre objet 3D. Le principe de placage des textures sur ces nouvelles formes reste strictement le même.

Retour sur les lumières Les calculs pour l’éclairage d’un objet se font par rapport aux vecteurs normaux des faces, et aux vecteurs incidents des rayons lumineux. Pour les primitives de Java3D, il suffisait de préciser un paramètre pour que les normales soient calculées. Ici, il va falloir définir chacun de ces vecteurs. (un pour chaque sommet de chaque face)

Conclusion Grâce à son modèle objet, Java3D permet de développer rapidement et efficacement, la plupart des fonctionnalités étant automatisées. Niveau rapidité, le Java 1.3 qui est sorti a corrigé la lenteur du Java 1.2 sous Linux (la version Windows était beaucoup plus rapide), et en ajoutant à ça l’utilisation des optimisations pour DirectX et OpenGL, Java3d est crédible. La grande généricité du modèle objet de Java3D lui permet d’ajouter tous types d’objets à notre monde, comme par exemple des sons 3D. Je n’ai trouvé aucune doc, à part les classes abstraites dans l’api. Ce document avait pour but de vous introduire les bases de l’utilisation de Java3D dans les domaines les plus importants, maintenant c’est à vous de « continuer l’aventure »…

Bibliographie En français: En anglais: Mon site web Java3d http://charon/~xandrean/java3d (intranet Université Montpellier 2 / LIRMM uniquement, non maintenu à jour) http://xandrean.free.fr/java3d Le tutoriel de l‘API Java 3D, traduction en français (incomplet: 3 chapitres sur 7) http://www.latelier-virtuel.com/2armel/tutj3d/ jCosmos http://www.jcosmos.claranet.fr/ En anglais: Java 3D API tutorial http://developer.java.sun.com/developer/onlineTraining/java3d/ Java 3D API documentation http://java.sun.com/products/java-media/3D/forDevelopers/J3D_1_2_API/j3dapi/index.html Java 3D API Specification http://java.sun.com/products/java-media/3D/forDevelopers/J3D_1_2_API/j3dguide/index.html The java 3D Community http://www.j3D.org