Java3D Lezione 0 Introduzione Di Blasi Gianpiero - D.M.I. - Università di Catania
L'evoluzione Hardware Le schede 3D producono oggi grafica interattiva paragonabile agli effetti speciali cinematografici Java è uno standard di sviluppo consolidato, potente e stabile Java3D è il punto di congiunzione dei due mondi
Addentriamoci in Java3D Java3D è una API grafica 3D ad alto livello Impiega lo Scene Graph Programming Model Il programmatore decide solo cosa disegnare Java3D deciderà come disegnare Include le caratteristiche tipiche delle più popolari API grafiche (DirectX, OpenGL)
Lo Scene Graph Programming Model (1) Uno scene graph è una struttura dati ad albero una gerarchia contenente i dati della scena le foglie dello scene graph sono: le forme, le luci, i suoni, ecc. i nodi interni raggruppano le foglie o altri nodi
Lo Scene Graph Programming Model (2)
Lo Scene Graph Programming Model (3)
Lo Scene Graph Programming Model (4)
Lo Scene Graph Programming Model (5)
Lo Scene Graph Programming Model (6)
Cosa si può fare con Java3D? (1) Java3D permette di creare mondi virtuali con: luci e texture comportamenti ed animazioni suoni Inoltre le applicazioni Java3D si adattano automaticamente al dispositivo di output: un semplice monitor occhialini 3D CAVE (sistemi immersivi multi-schermo)
Cosa si può fare con Java3D? (2) Desktop
Cosa si può fare con Java3D? (3) Ultra wall
Cosa si può fare con Java3D? (4) Cave
Cosa si può fare con Java3D? (5) Java3D supporta un ampio range di applicazioni: sistemi CAD/CAM visualizzazione scientifica/biomedicale data visualization simulazioni 3D ecommerce desktop 3D videogame Vediamo qualche esempio concreto...
SDRC I-DEAS Viewer
Webscope
VisAD spreadsheet
VisAD x Simulazioni Atmosferiche
INT J/View3Dpro
ISS SMP Control Console x Canadarm2
Maestro
ASENZA Nokia Mobile Phone
Xtivia Reality Server
Nearlife Virtual FishTank
Il CAVE alla University of Calgary
Looking Glass
Teatro Virtuale
Cosm
Roboforge
Law & Order
Chrome
Tribal Trouble
Java3D - obiettivi di design Una collaborazione tra SUN, SGI, Intel e Apple I principali obiettivi di design sono stati: integrazione con Java (core, portabilità) alte prestazioni e scalabilità supporto delle principali caratteristiche 3D (luce, shading, texture, ecc.) forza industriale (non solo applet 3D o poco più)
Cosa Serve (Hardware/Software)? Windows/Linux processore: 1Ghz memoria: 256MByte scheda Grafica 3D MacOSX ibook G4/900Mhz Software Java2 sdk 1.5.0 Java3D sdk 1.3.1
Cosa Serve (Documentazione)? Documentazione Java3D Tutorial Java 3D (sarà il testo di riferimento) http://www.dmi.unict.it/~gdiblasi/didattica.php
Libri (?) A.E. Walsh, D. Gehringer Java3D API Jump-Start Prentice Hall PTR D. Selman Java3D Programming Manning Publications Company H. Sowizral, K. Rushforth, M. Deering The Java 3D API Specification Addison-Wesley Professional K. Brown, D. Petersen Ready-to-Run Java 3D, with plug-and-play code John Wiley & Sons Inc J. Barrilleaux 3D User Interfaces with Java 3D Manning Publications Company
Cosa Faremo? Modulo 1: Introduzione a Java3D Modulo 2: Interazione ed Animazione Lezione 1: Hello Java3D Lezione 4: Interazione Lezione 2: Creazione delle geometrie 1 Lezione 5: Animazione Lezione 3: Creazione delle geometrie 2 Modulo 3: Luci e Texture Lezione 6: Luci Lezione 7: Texture
Cosa Non Faremo? Collisioni Dispositivi di input Viste multiple E tanto altro ancora...
Perché Java3D? Motivazioni temporali: è più facile di altre API si impara più in fretta è basato su Java (non bisogna prima imparare C/C++ o qualche altro linguaggio) Motivazioni didattiche: si vogliono insegnare i principi tipici di una API grafica non una particolare API lascia nascosti molti dettagli superflui in un corso di primo livello
Esempi Tutti gli esempi sono stati testati su architetture AMD e WindowsXP HE con Java3D per DirectX AMD e SuSE Linux con Java3D per OpenGL PowerPC G4 e MacOS X 10.4 con Java3D per OpenGL Intel Core2 Duo e MacOS X 10.5 con Java3D per OpenGL È possibile che su altre architetture gli esempi non funzionino correttamente, segnalatemi eventuali problemi (e magari scrivete le patch per risolverli)
Esami Realizzazione di un progetto Java3D (a scelta dello studente) che attesti la comprensione degli argomenti trattati a lezione All'esame bisogna presentare un CD contenente: codice sorgente e compilato (FUNZIONANTE!!!) scene graph e diagramma delle classi brevissima relazione descrittiva del progetto qualsiasi altro materiale aggiuntivo ritenuto utile NIENTE MATERIALE CARTACEO
Scheduling delle lezioni Date: 25/03, 27/03 10/04 22/04, 24/04 06/05, 08/05 20/05, 22/05 Ore: 15.00-17.00
Vediamo qualche demo Looking Glass RoboForge Law & Order Chrome Teatro Virtuale