La 3D avec le langage Java

34
26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 1 La 3D avec le langage Java Généralités sur la 3D Généralités sur la 3D « temps-réel » Présentation de VRML - Les concepts de base - Les concepts avancés Les deux manières de faire de la 3D avec le langage Java : - avec l’API Java3D - Java et VRML

Transcript of La 3D avec le langage Java

Page 1: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 1

La 3D avec le langage Java

• Généralités sur la 3D

• Généralités sur la 3D « temps-réel »

• Présentation de VRML- Les concepts de base

- Les concepts avancés

• Les deux manières de faire de la 3D avec le langageJava :

- avec l’API Java3D

- Java et VRML

Page 2: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 2

Généralités sur la 3D (1/2)

Pourquoi utiliser une représentation en 3D ?• Réalisme

• Compréhension accrue d’un modèle à 3 dimensions

⇒ travail du système perceptif humain plutôt que du systèmecognitif- représentations des molécules en chimie

- mouvements des astres en astronomie

- topographies de terrains en cartographie

- représentation d’organes en médecine

- interactions riches et intuitives avec de multiples données

Page 3: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 3

Généralités sur la 3D (2/2)

A base de polygones1. Transformation des formes

complexes en ensemble detriangles

2. Transformation, coloriage,illumination et projection dechacun des triangles

Lancer de rayon

Les deux méthodes de rendu 3D sur écran 2D

« qualité plutôt que quantité »« quantité plutôt que qualité »

Page 4: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 4

Généralités sur la 3D « temps-réel » (1/3)

• Périphériques d’entrée spécialisés :- haptiques (contact physique avec le dispositif) : souris 3D, gant, joystick- non-haptiques : caméra, commandes vocales, champ électromagnétique

• Périphériques de sortie :- sans projection 2D : imprimantes 3D, représentation holographique- avec projection 2D : lunettes stéréoscopiques, moniteurs

• Accélération matérielle pour le calcul des scènes :- cartes graphiques 3D- instructions spécialisées dans le microprocesseur (KNI, 3DNow!)

Matériels nécessaires

Page 5: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 5

Généralités sur la 3D « temps-réel » (2/3)Le pipeline 3D

Page 6: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 6

Généralités sur la 3D « temps-réel » (3/3)Les deux modes de transmission des ordres 3D

Mode immédiatTransmission immédiate des ordres àl’API

Mode retenuUtilisation d’une structure retenant lesordres 3D puis transmission de cettestructure à l’API

Types de structures :- buffer d’exécution, liste d’appels

- graphe de scène

commandecommande

•••

•••

paramètresparamètres

•••

•••

commande

•••

•••

paramètres

•••

•••

commande paramètres

Page 7: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 7

Bibliographie 3D

Les ouvrages généraux :J.-P. Couwenbergh, "L’indispensable pour la synthèse d’images", Marabout, 1995.

Foley, van Dam, Feiner, Hughes, "Computer Graphics : Principles and Pratice »,Addison-Wesley, 1990.

M. Bret, "Images de synthèse - méthodes et algorithmes pour la réalisation d’imagesnumériques", Dunod, 1988.

Quelques sites :Programmation 3D en C, http://www.multimania.com/heulin/3D/Sommaire.html

Cours Infographie et CAO, http://gegisv01.gegi.polymtl.ca/info/granger/cours/3.430/co3430.htm

On-Line Computer Graphics Notes, http://graphics.cs.ucdavis.edu/GraphicsNotes

Un cours :P. Cubaud, "Synthèse d’images - Une introduction", Valeur C et DEA Conceptiond’applications multimédia, C.N.A.M.,1999.

Page 8: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 8

• Définition : Virtual Reality Modeling Language(format de fichier pour la description de scènes 3D interactives avec hyperliens

pour l’internet)

• Bref historique :1994 : Labyrinth de Pesce et Parisi, un navigateur 3D pour le web

1995 : VRML 1.0, description de scènes statiques

1996 : VRML 2.0, description de scènes animées

1997 : VRML97, normalisation ISO/IEC 14772-1:1997

- Un monde réaliste

- Un monde animé

- Un monde interactif

- Un monde connecté

VRML - Généralités (1/2)Présentation

Page 9: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 9

VRML - Généralités (2/2)Fonctionnement d’un plugin VRML

Interface utilisateur

Chargeur de scènes

Gestion des scènes

Rendu des scènes

Demande de chargement d'une URL fichiergzip

décompression

ouinon

chargement

interactions

Analyse lexicale, syntaxiqueet traduction du fichier

Représentationinterne

événementset animations

Nouvelle scène à afficher exécution dupipeline

graphique

Mise à jour de la scène

Fichier de type MIME model/vrml

Page 10: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 10

• Organisation hiérarchique d’objets contenant des attributs

Les nœuds fils subissent tous le comportement défini par les attributs de leurnœud père

⇒ cascade de comportements

VRML - Concepts de base (1/5)

Graphe de scène Nœuds Champs

Nœuds

Page 11: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 11

• Trois types de nœuds :– les nœuds de regroupement (Transform, Group, ...)

– les nœuds attachés à un nœud de regroupement (Shape, …)

– les nœuds attributs attachés à un autre nœud par l’intermédiaire d’unchamps autre que children (géométrie, apparence, ...)

VRML - Concepts de base (2/5)

USE

Nœudsdépendants

Nœuds dedonnées

Nœuds deregroupement

Shape

Shape

Transform

Material

Material

Cylinder

Appearance

Appearance

DEFTransform

TransformCylinder

Page 12: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 12

• Trois types de champs :– field : contiennent les données du nœud

– eventIn et eventOut : reçoivent et émettent des événements

– exposedField : hybrides des deux précédents

VRML - Concepts de base (3/5)

USETransform

exposedFieldSFRotation rotation

exposedFieldMFNode children

Transform

exposedFieldSFVec3f translation

exposedFieldMFNode children

Transform

exposedFieldSFVec3f translation

exposedFieldMFNode children

Shape

exposedFieldSFNode appearance

exposedFieldSFNode geometry

Shape

exposedFieldSFNode geometry

exposedFieldSFNode appearance

Cylinder

field SFFloat radiusfield SFFloat height

MaterialexposedField SFColor diffuseColor

AppearanceexposedFieldSFNode material

Cylinder

field SFFloat radiusfield SFFloat height

AppearanceexposedFieldSFNode material

MaterialexposedField SFColor diffuseColor

DEF

Page 13: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 13

#VRML V2.0 utf8

Transform {

rotation 0.0 0.0 1.0 1.57

children [

Transform { # premier poids

translation 0 -1.7 0

children [

DEF Poids Shape {

appearance Appearance {

material Material {

diffuseColor 0.2 0.5 0.8

}

} # fin Appearance

geometry Cylinder {

height 0.2

radius 1

}

} # fin Shape

] # fin children

} # fin Transform

Transform { # deuxième poids

translation 0 1.7 0

children USE Poids

}

Shape { # la tige de l’altère

appearance Appearance {

material Material {

diffuseColor 0.7 0.2 0.3

}

} # fin Appearance

geometry Cylinder {

height 4.0

radius 0.2

}

} # fin Shape

] # fin du children principal

} # fin du Transform principal

VRML - Concepts de base (4/5)

Définition d’uneinstance de Poids

Utilisation d’une instance de Poids

Page 14: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 14

VRML - Concepts de base (5/5)

• Format des fichiers VRML : fichiers textes (compressés ou nonpar Gzip) composés de 4 parties :

– L’entête : #VRML <version> <type d’encodage> [commentaires]

#VRML V1.0 ascii mon fichier VRML 1.0

#VRML V2.0 utf8 mon fichier VRML 2.0

– La définition des prototypes• les prototypes externes sont référencés par une URL dont le contenu est un

fichier VRML valide (respectant ce format)

– Le graphe de scène

– Les routages d’événements

• Précisions :– Pour écrire une ligne en commentaire commencer par #

– Un nœud doit toujours être suivi d’accolades (même vides)

– Par convention, le repère cartésien utilisé est "Main droite"

Page 15: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 15

VRML - Prototypes (1/2)

• Instance :– Définition du nom de l’instance par le mot-clé DEF– Utilisation de l’instance par le mot-clé USE

Ö le sous-arbre définit par le mot-clé DEF est recopié « tel quel » àl’emplacement du mot-clé USE

La définition doit se trouver avant l’utilisation

• Prototype : une instance avec paramètres– Définition par le mot-clé PROTO ou EXTERNPROTO– Utilisation comme un autre nœud

Ö Le sous-arbre définit par le prototype est recopié avec affectation desvaleurs des paramètres dans le graphe de scène appelant

!

Page 16: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 16

Utilisation de prototype externe PoidsLa définition externe du prototype Poids

#VRML V2.0 utf8

PROTO Poids [ exposedField SFVec3f pos 0.0 0.0 0.0 exposedField SFColor coul 0.2 0.5 0.8]{ Transform { # premier poids translation IS pos children [ Shape { appearance Appearance { material Material { diffuseColor IS coul } } # fin Appearance geometry Cylinder { height 0.2 radius 1 } } # fin Shape ] # fin children } # fin Transform} # fin PROTO

VRML - Prototypes (2/2)#VRML V2.0 utf8

EXTERNPROTO Poids [ exposedField SFVec3f pos exposedField SFColor coul] "Poids.wrl"

Transform { rotation 0.0 0.0 1.0 1.57 children [ Poids { pos 0 -1.7 0 } Poids { pos 0 1.7 0 } Shape { appearance Appearance { material Material { diffuseColor 0.7 0.2 0.3 } } # fin Appearance geometry Cylinder { height 4.0 radius 0.2 } } # fin Shape ] # fin du children principal} # fin du Transform principal

Utilisations duprototype Poidsavec la valeurcoul par défaut

Affectationdes valeurs

auxparamètres

Page 17: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 17

VRML - Evénements (1/2)

• But : animation automatique de certains objets d’une scène

• Principes de fonctionnement des animations :– Propagation d’un événement émis par un nœud vers un second nœud de

la même scène réceptionnant ce même type d’événement

– Emission et réception d’événements :• Par les attributs de type eventIn et eventOut d’un nœud

• Un attribut attr de type exposedField émet et reçoit des événements :– attr_changed émet un événement notifiant un changement de valeur

– set_attr reçoit un événement pour l’affectation d’une nouvelle valeur

– Déclenchement d’une animation par la récupération d’un état particulierd’un capteur (nœuds Sensor)

– Tous les nœuds intervenant dans une animation doivent être instanciéspar le mot-clé DEF pour être utilisés dans la partie routaged’événements du fichier VRML

Page 18: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 18

Rou

tage

des

événements

Interpolateurd

e cou

leu

rC

ap

teu

rsVRML - Evénements (2/2)

#VRML V2.0 utf8

EXTERNPROTO Poids [ exposedField SFVec3f pos exposedField SFColor coul] "Poids.wrl"

Transform { rotation 0.0 0.0 1.0 1.57 children [ DEF P1 Poids { pos 0 -1.7 0 } DEF P2 Poids { pos 0 1.7 0 } Shape { appearance Appearance { material Material { diffuseColor 0.7 0.2 0.3 } } # fin Appearance geometry Cylinder { height 4.0 radius 0.2 } } # fin Shape ] # fin du children principal} # fin du Transform principal

DEF TOUCH TouchSensor {}DEF TIME TimeSensor {}

DEF CI ColorInterpolator { key [0.0 0.50 0.75] keyValue [0.0 0.0 1.0, 0.0 0.0 0.4,

0.0 0.0 1.0]}

ROUTE TOUCH.touchTime TO TIME.start_timeROUTE TIME.fraction_changed TO

CI.set_fraction

ROUTE CI.value_changed TO P1.set_coulROUTE CI.value_changed TO P2.set_coul

Définitiondes

instancesde Poids

TOUCH

touchTime

TIME

start_time

fraction_changed

CI

set_fraction

value_changed

P1

set_coul

P2

set_coul

Page 19: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 19

VRML - Scripts (1/2)

• But : création d’animations sur mesure

• Le nœud Script émet et reçoit des événements– Un événement entrant déclenche l’exécution de la fonction portant son

nom dans le script

– Un événement sortant est déclenché lors d’une affectation de valeur àune variable de type eventOut ou exposedField

• Les scripts peuvent être écrits en JavaScript ou en Java et sontdéclarés dans le champs url du nœud Script

– En interne pour JavaScript (en mode texte)url [ "javascript : function(...) ..."]

– En externe pour les scripts Java (en pseudo-code non éditable)url ["monScript.class",

"http://maMachine.monDomaine.monPays/monScript.js"]

Page 20: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 20

VRML - Scripts (2/2)D

éfinition d

u S

cript

#VRML V2.0 utf8

EXTERNPROTO Poids [ exposedField SFVec3f pos exposedField SFColor coul] "Poids.wrl"

Transform { rotation 0.0 0.0 1.0 1.57 children [ DEF P1 Poids { pos 0 -1.7 0 } DEF P2 Poids { pos 0 1.7 0 } Shape { appearance Appearance { material Material { diffuseColor 0.7 0.2 0.3 } } # fin Appearance geometry Cylinder { height 4.0 radius 0.2 } } # fin Shape ] # fin du children principal} # fin du Transform principal

DEF TOUCH TouchSensor {}

DEF JSCRIPT Script { eventIn SFBool activate eventOut SFColor color field SFColor active 0.0 1.0 1.0 field SFColor inactive 0.1 0.5 1.0 url [ "javascript: function activate(value) { if (value==true) color = active; else color = inactive; }" ]}

ROUTE TOUCH.isOver TO JSCRIPT.activateROUTE JSCRIPT.color TO P1.set_coulROUTE JSCRIPT.color TO P2.set_coul

TOUCH

isOver

JSCRIPT

activate

color

P1

set_coul

P2

set_coul

Page 21: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 21

• External Authoring Interface : Ensemble de classes Javaautorisant une applet à communiquer avec une instance du co-navigateur VRML sur une même page HTML

• Utilisation du package EAI fourni avec le co-navigateur :– CLASSPATH doit le référencer

– Les applets doivent déclarer son importation

Les différentes classes Java permettant d’opérer sur une scène VRML

VRML et Java - EAI (1/2)

Fichier HTML

Applet Java

ScèneVRML

ExternalAuthoringInterface

NœudScript

Script JavaMoteurVRML

Classes vrml.external.* Classes vrml.*

Page 22: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 22

VRML et Java - EAI (2/2)

• Fonctionnement :– Inclure les applets Java et la scène VRML sur laquelle elles doivent

intervenir dans la même page HTML<HTML><HEAD><TITLE> Exemple EAI </TITLE><BODY><EMBED src="AltereExternScript.wrl" width="300" height="300"></EMBED><APPLET code="AltereScript.class" width="200" height="100"></APPLET></BODY></HTML>

– Récupérer dans les applets Java la référence au moteur VRMLBrowser browser = vrml.external.Browser.getBrowser(this);

– Récupérer les nœuds de la scène sur lesquels émettre des actions (cesnœuds doivent être nommés par DEF dans la scène VRML)

Node P1 = browser.getNode("P1");Node P2 = browser.getNode("P2");

– Effectuer les actions vouluesExposedFieldSFColor couleurP1 = P1.getExposedField("coul");ExposedFieldSFColor couleurP2 = P2.getExposedField("coul");Float value[3] = new Folat[3];value[0] = 0.0; value[1] = 1.0; value[2] = 1.0;couleurP1.setValue(value);couleurP2.setValue(value);

Page 23: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 23

VRML - Bibliographie

Deux livres :J. Hartman, J. Wernecke, The VRML 2.0 Handbook - Building Moving Worlds on theWeb. Addison Wesley Developpers Press.

C. Marrin, B. Campbell, Teach yourself VRML 2 in 21 days. Sams Net editions.

Les sites de référence :Le W3D consortium pour les spécifications : http://www.web3D.org/vrml

Journal des développeur VRML : http://www.VRMLDevelopersJournal.com

Tout sur VRML : http://vrml.sdsc.edu et http://vrml.miningco.com

Les sites français :Liens vers les plugins, tutoriaux : http://apia-u-strasbg.fr/vrml

Le groupe VRML francophone : http://webhome.infonie.fr/kdo/vrml/

Page 24: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 24

Java3D - Généralités (1/2)

• API (Application Program Interface) 3D développée par SunMicrosystems en 1998

• Ensemble de classes de haut-niveau permettant à unprogrammeur de créer et de manipuler des scènes 3D

• Avantages de cette solution :– « write once, run anywhere »

– accès à des objets 3D pour une programmation rapide

– accès à tous le panel des fonctions Java

– synthétise le meilleur des autres API 3D et de la gestion des graphes

• Inconvénients :– pas encore vraiment multi plates-formes

– performances insuffisantes

Page 25: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 25

Java3D - Généralités (2/2)

• Java3D s’appuie sur des API 3D bas niveau :– OpenGL sous Windows NT ou 9x et Solaris– Direct3D sous Windows 9xÖ Indépendance du hardware

• Projet d’implémentation de commandes Java3D câblées

OpenGL

Matériel

Couche d'abstraction matérielle

Couche d'émulation matérielle

DirectDraw/Direct3D

Windows DDI

GDI

Java3DJava

Page 26: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 26

Java3D - Structure d’une scène (1/4)

• Les objets (nœuds) sont regroupés dans un graphe de scène

Deux types de nœuds :– les groupes donnent les transformations à opérer sur leurs différents fils

et sont référencés par un seul nœud père– les feuilles (sans fils) contiennent les définitions des objets visibles

(géométrie, apparence)

• Pas de cycles dans le graphe

⇒ Graphe de scène = Arbre N-aire

⇒ Organisation et contrôle du rendu

⇒ Regroupement spatial des objets

⇒ L’état d’une feuille dépend de tous les nœuds se trouvant sur lechemin direct menant à la racine du graphe

Page 27: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 27

Java3D - Structure d’une scène (2/4)

• Les différents objets entrants dans la composition ou laspécification d’une scène sont liés à l’intérieur d’un graphe descène global (superstructure de graphe)

– Le fils droit de la racine du graphe = graphe de vue = tous les objetsrelatifs à la description du point de vue

– Le fils gauche de la racine du graphe = graphe de scène = tous les objetsrelatifs à la description de la scène visualisée

Graphe de scène + Programmation Orientée Objet

⇒ conception en terme d’objets et non en terme de polygones

⇒ composition de scène plutôt que façon d’effectuer le rendu

Page 28: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 28

Java3D - Structure d’une scène (3/4)

VirtualUniverse

Hi-Res Locale

VPView

Platform

View Canvas3D Screen3D

PhysicalBody

PhysicalEnvironment

BG

Graphe de scène Graphe de vue

Super graphe de scène

BG

BranchGroup

TT T TransformGroup

Shape

Apparence Géométrie

Behavior

Code etdonnéeutilisateur

S

B

S

PB PE

HR

Page 29: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 29

Java3D - Structure d’une scène (4/4)

VP View Canvas3D Screen3D

BGBG

TT

Apparence Géométrie

B

S

PB PE

HR

Paramètres del’écran

Définit les coordonnées del’origine de son sous-arbre

Nœud de branchement desous-graphe Informations

pour le rendude la scène

Informationspour le rendude la scène

Informationssur la fenêtre

de rendu

Paramètres desdispositifsphysiques

Transformation géométriquedes nœuds fils

Comportementdéfini par le

code utilisateur

Objet visible dela scène

Paramètres ducorps

Apparence del’objet

Forme de l’objet

Page 30: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 30

Java3D - Les étapes de construction (1/4)

1. Création d'un objet Canvas3D que l'on ajoute àun objet Panel d'une Applet ou d'une applicationautonomeCanvas3D c = new Canvas3D(null);

add("Center", c);

Canvas3D

2. Création d'un objet BranchGroup servant àregrouper les nœuds constituant la scèneBranchgroup objRoot = new BrancGroup();

BG

Page 31: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 31

Java3D - Les étapes de construction (2/4)

3. Construction des objets de la scène avec des objets Shape3D regroupés en fonctiondes transformations qu'ils subissent dans des nœuds TransformGroupTransformGroup objTrans = new TransformGroup();objRoot.addChild(objTrans);objTrans.addChild(new ColorCube());Transform3D yAxis = new Transform3D();

T

Apparence Géométrie

S

BG

Canvas3D

4. Création des nœuds Behaviour et des codes utilisateursmodifiant les nœuds TransformGroup Alpha ra = newAlpha(-1, Alpha. INCREASING_ENABLE, 0, 0, 4000, 0, 0,0, 0, 0);RotationInterpolator ri = new RotationInterpolator (ra,objTrans, yAxis, 0.0, (float)Math.PI*2.0);BoundingSphere bounds = BoundingSphere(

new Point3d(0.0, 0.0, 0.0), 100.0);ri.setSchedulingBounds(bounds);objTrans.addChild(ri);

B

Page 32: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 32

Java3D - Les étapes de construction (3/4)

T

Apparence Géométrie

S

BG

Canvas3D

B

VP View Canvas3D Screen3D

BG

T

PB PE

5. Construction de tous les nœuds quiconcernent l'univers de rendu de la scèneSimpleUniverse u = new SimpleUniverse (c);

6. Insertion du graphe de scène à l'objetLocaleu.addBranchGraph(scene);

HR

Page 33: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 33

Java3D - Les étapes de construction (4/4)Récapitulatif

c Création d'un objet Canvas3D que l'on ajoute à un objet Panel d'une Applet ou d'une applicationautonome

d Création d'un objet BranchGroup servant à regrouper les nœuds constituant la scène

e Construction des objets de la scène avec des objets Shape3D regroupés en fonction destransformations qu'ils subissent dans des nœuds TransformGroup

f Création des nœuds Behaviour et des codes utilisateurs modifiant les nœuds TransformGroup(pour une rotation automatique de la scène, on pourra par exemple utiliser un nœudRotationInterpolator qui effectue des rotations d'un angle donné tous les intervalles de tempsdonnés)

g Construction de tous les nœuds qui concernent l'univers de rendu de la scène :c Création de l'objet VirtualUniverse et du ou des objets Locale

d Création des objets PhysicalBody, PhysicalEnvironment, View et ViewPlatform

e Création de l'objet BranchGroup auquel on attache un nœud TransformGroup qui contient lui même legraphe de vue créé précédemment

f Insertion de ce nœud BranchGroup à l'objet HiResLocale

h Insertion du graphe de scène à l'objet LocaleCe que fait la méthode

SimpleUniverse

Page 34: La 3D avec le langage Java

26/01/2000 Présentation : "La 3D avec le langage Java" A.Topol 34

Java3D - Bibliographie

Un livre :Sowizral Henry, Rushforth Kevin, Deering Mickael, The Java 3D API Specification, TheJava Series, Addison-Wesley, Reading (Massachussets), December 1997.

Site Java de Sun :Pour Java3D (documentations, téléchargement et liens) :http://www.javasoft.com/products/java-media/3D/

Mailing list : java3d-interest

souscription par mail à [email protected] avecsubscribe java3d-interest dans le corps du mail

News groups :comp.lang.java.* ou fr.comp.lang.java