Leghissa Simon
Descrizione proggetto
Il proggetto prevede la visualizzazione e l’animazione di un
cubo in ambiente Java 3D.
Fasi:
- creazione di un’ applicazione grafica Java 3D
- inserimento di un cubo nella scena
- creazione di una o più animazioni
Classi e Librerie
Classi implementate:
- AnimazioneCubo3D
main)
- MioBehavior
(classe principale con metodo
(gestione eventi da tastiera)
Principali librerie utilizzate:
- javax.media.j3d.*
(Core di Java 3D)
- com.sun.j3d.utils.*
(Classi di utility per Java 3D)
- javax.swing.*
(Libreria grafica J2SE)
SimpleUniverse
Il metodo più semplice per creare una scena in Java 3D è
quello di utilizzare la classe SimpleUniverse.
Creare un oggetto Canvas3D
2. Creare un oggetto SimpleUniverse e collegarlo al
Canvas3D
3. Personalizzare l'oggetto SimpleUniverse:
 Costruire un content branch graph, contente un cubo e
tutti gli oggetti relativi all’animazione
 Compilare il content branch graph
4. Collegare il content branch graph al SimpleUniverse
1.
Le classi delle primitive
geometriche
Esistono tre modi per creare nuove geometrie:
– usare le classi di utility per box, coni, cilindri e
sfere
– specificare le coordinate dei vertici per punti,
linee e superfici
– usare i loader di geometrie
Il metodo più semplice per creare un cubo è l’utilizzo della
classe Box.
La classe Box
 Crea un “box” 3D: le dimensioni di
default per lunghezza, larghezza ed
altezza sono 2,con il centro posto
nell'origine
 La figura di default è quindi un cubo
con gli
spigoli a ( -1, -1, -1) e ( 1, 1, 1)
 Le dimensioni posso essere
specificate all'atto della creazione
 Box(float xdim, float ydim, float zdim,
Appearance appearance)
Aspetto ed attributi
 Uno Shape3D (Box è una estensione di Shape3D) può fare
riferimento sia ad un
oggetto Geometry sia ad un oggetto Appearance
 La Geometry specifica le informazioni spaziali e
(opzionale) di colore sui vertici
 Tuttavia i dati di una Geometry sono spesso
insufficienti per descrivere l'aspetto di un oggetto: è
necessario utilizzare un oggetto Appearance
Aspetto ed attributi
 Gli oggetti a cui può referenziarsi un Appearance
sono molteplici, i principali sono:
 PointAttributes/LineAttributes
 PolygonAttributes
 ColoringAttributes/TransparencyAttributes
 RenderingAttributes/Material
 TextureAttributes/Texture/TexCoordGeneration
 Per ogni attributo esiste un metodo per
impostare/recuperare il suo valore
Classe Behavior
In Java3D sia le animazioni sia le interazioni sono definite
utilizzando la classe Behavior.
Scopo di un Behavior è modificare uno scene graph in
risposta a qualche stimolo. Uno stimolo può essere la
pressione di un tasto, un movimento del mouse, la
collisione tra oggetti, il passare del tempo, ecc.
I cambiamenti prodotti possono essere l'aggiunta e/o la
rimozione di oggetti dallo scene graph, il cambiamento di
attributi degli oggetti,…
Le animazioni in Java3D
Teoricamente è possibile creare qualsiasi animazione
personalizzata usando i Behavior, in ogni caso Java3D
fornisce una serie di classi di utility per le animazioni più
comuni. Ovviamente queste classi sono basate sui
Behavior.
Un particolare insieme di classi per le animazioni sono gli
interpolatori: un oggetto Interpolator manipola alcuni
parametri di uno scene graph per creare animazioni
basate sul tempo.
Gli Interpolatori
Gli Interpolator sono Behavior personalizzati che usano un
oggetto Alpha. Le azioni degli Interpolator comprendono il
cambiamento di :
 posizione
 orientamento
 dimensione
 colore
 trasparenza di un oggetto
Esistono Interpolator anche per altre azioni, incluse le
combinazioni delle precedenti azioni.
La classe Alpha
Un oggetto Alpha produce un valore, detto valore alpha,
compreso tra zero ed uno, estremi inclusi. Il valore alpha
cambia nel tempo in base ai parametri dell'oggetto
stesso. Fissati i parametri di Alpha ed un particolare
istante di tempo, c'è un solo valore alpha che l'oggetto
Alpha può produrre.
Associando un oggetto Alpha ad un Interpolator,
quest’ultimo modificherà gli oggetti a lui sottostanti nello
scene graph (target) a seconda del valore di alpha.
La classe Alpha
Alcune classi Interpolator
Classe Interpolator
Usato per
Oggetto target
ColorInterpolator
Cambiare il colore di un
oggetto
Material
PathInterpolator (Astratta)
Creare percorsi
TransformGroup
PositionInterpolator
Cambiare la posizione di un
oggetto
TransformGroup
RotationInterpolator
Cambiare l'orientamento di
un oggetto
TransformGroup
ScaleInterpolator
Cambiare le dimensioni di
un oggetto
TransformGroup
SwitchValueInterpolator
Scegliere un oggetto tra una
collezione
Switch
TransparencyInterpolator
Cambiare la trasparenza di
un oggetto
TransparencyAttribut
es
Demo
see
file
LeghissaAnimaCuboJava3D.avi
Bibliografia
 Programmazione.it – Introduzione a Java 3D






http://programmazione.it/index.php?entity=eitem&idItem=37338
Getting Started with the Java 3D™ API
http://java.sun.com/developer/onlineTraining/java3d/j3d_tutorial_ch1.pdf
Creating Geometry in Java 3D
http://java.sun.com/developer/onlineTraining/java3d/j3d_tutorial_ch2.pdf
Easier Content Creation
http://java.sun.com/developer/onlineTraining/java3d/j3d_tutorial_ch3.pdf
Interaction
http://java.sun.com/developer/onlineTraining/java3d/j3d_tutorial_ch4.pdf
Animation
http://java.sun.com/developer/onlineTraining/java3d/j3d_tutorial_ch5.pdf
Lezioni di Java 3D
http://www.dmi.unict.it/~gdiblasi/didattica/cg/
Scarica

LeghissaJava3D_AnimaCubo