1 / 29

Konzeptioneller Vergleich von VRML , Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen

Konzeptioneller Vergleich von VRML , Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen. von Christian Stein. Motivation / Grundlagen: Was ist OpenGL, Java3D und VRML? (incl. Beispiele) Wie sind die Animationsmodelle aufgebaut?

opa
Télécharger la présentation

Konzeptioneller Vergleich von VRML , Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen

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. Konzeptioneller Vergleich von VRML, Java3D und OpenGLhinsichtlich ihrer Eignung zur Erstellung vonAnimationen vonChristian Stein

  2. Motivation / Grundlagen: Was ist OpenGL, Java3D und VRML? (incl. Beispiele) Wie sind die Animationsmodelle aufgebaut? Wo sind Unterschiede zwischen den Animations-Konzepten Das Resultat Übersicht

  3. Historische Entwicklung: Früher: 3D-Bild (starr/statisch) Heute: Virtuelle-Realität (VR): permanente Abbild-Erstellung, Interaktion und Dynamik der 3D-Objekte Animationen notwendig Hoher Aufwand für 3D-Bild-BerechnungÞ Minimierung der Neuberechnungen notwendigGesucht: Ein Modell, daß Animationen effektivrealisiert Zwei Arten von Animation: Navigation / Interaktion Dynamik der 3D-Objekte Motivation

  4. Alle drei sind plattformübergreifende Schnittstellen OpenGL (Graphics Library): Low-Level-API es werden einzelne Abbilder von 3D-Szenen erstellt (CAD-Bereich) Java3D: 'Low-Level'-API, Neu (Final-Release vor 2 Tagen) Zur Erstellung von 'Virtueller Realität' (VR) geeignet (es werden mehrere Abbilder hintereinander erstellt) VRML (Virtual Reality Modeling Language): High-Level-'API', WWW-Bereich VR möglich Was ist OpenGL, Java3D und VRML?

  5. Beispiele für OpenGL, Java3D und VRML

  6. void CCubeView::DrawScene(void) { glTranslatef(0.0f, 0.0f, -m_fRadius); glRotatef(wAngleZ, 0.0f, 0.0f, 1.0f); wAngleZ += 5.0f; glBegin(GL_QUADS); glColor3f(1.0f, 0.0f, 1.0f); glVertex3f(-0.5f, 0.5f, 0.5f); glVertex3f(-0.5f, -0.5f, 0.5f); glVertex3f(0.5f, 0.5f, 0.5f); glVertex3f(0.5f, -0.5f, 0.5f); glEnd(); glFinish(); SwapBuffers(wglGetCurrentDC()); } OpenGL

  7. public BranchGroup createSceneGraph() { BranchGroup objRoot =newBranchGroup(); TransformGroup objTrans =newTransformGroup(); objRoot.addChild(objTrans); objTrans.addChild(newColorCube(0.4)); objRoot.compile(); return objRoot; } Java3D

  8. #VRML V2.0 utf8 Transform { children [ Shape { geometry Sphere { } appearance Appearance { material Material { diffuseColor 0.8 0 0 } } } ] } VRML

  9. Das 'Animationsmodell' von OpenGL

  10. OpenGL • Alle Zwischendaten werden nach der Rastererung vergessen (Hauptaufwand der Berechnung ist davor L) • Noch Operationen auf Pixelebene möglich, aber unhandlich

  11. Das Animationsmodell von VRML

  12. Sensoren erzeugen Ereignisse Alle empfangen und senden, bzw. senden weiter Interpolatoren und Scripte berechnen neue Werte VRML

  13. Route-Mechanismus (VRML) ROUTE QuellKnoten.QuellVariable TO ZielKnoten.ZielVariable • mehrere Verbindungen zu einer Variable • mehrere Verbindungen von einer Variable • Endlosschleifen nicht möglich, da pro Nachrichtenkette eine Variable nur einmal eine Nachricht senden kann

  14. Sensoren und Interpolatoren (VRML) • Sensoren ändern ihre Variablen anhand von Benutzereingaben oder Zeit • Interpolatoren rechnen 'Zeit'-Werte in andere um, z.B. Translationen, Rotationen • Interpolator-'Zeit'-Werte sind im [0,1] Intervall • Interpolatoren können Teilintervalle unterschiedlich linear Interpolieren, z.B.[0,0.5,1] ® [500, 600, 800]

  15. Script-Knoten - Struktur (VRML) Script { # Interface-Teil = Variablen # Script-Teil = Funktion die ausgeführt werden }

  16. VRML-Browser Aufbau

  17. Das Animationsmodell von Java3D

  18. Java3D

  19. Der Scheduler (Java3D) • Bekommt von 'Verhalten'-Objekten (also auch von Interpolatoren) gesagt bei welchen Ereignissen sie aufgerufen werden sollen. Es wird zusätzlich eine Scheduleregion angegeben (Optimierung durch culling). • Strukturen: • volume/scheduling tree (Scheduleregionen) • and/or tree (Ereigniskombination)

  20. Interpolatoren (Java3D) • Interpolatoren sind Klassen, die anhand von einer Aktivierungsfunktion Eigenschaften oder die Position von geometrische Objekte verändern. • Die Aktivierungsfunktion bildet Zeitwerte in 4 Phasen in Werte zwischen 0 und 1 ab:Aufstieg, 1, Abstieg und 0.Die Steigung muß nicht konstant sein.

  21. Verhalten-Klasse (Java3D) public class bspBehavior extends Behavior { // Variablendeklaration public bspBehavior(Parameter p) { // Variablen initialisieren } public void initialize() { wakeupOn(wakeupKriterium); } public void processStimulus(Enumeration criteria) { // Die Handlung wakeupOn(wakeupKriterium); } }

  22. Unterschiede derAnimations-Konzepte von Java3D und VRML

  23. Verhaltens-Klasse vs. Script-Knoten • Java3D: Eingebettet vs. VRML: Schnittstelle (d.h. bei VRML, Kommunikation zwischen zwei Threads) • VRML-Script-Knoten: nur Werte-Berechnung, kein AWT (oder nur mit Tricks) • Java3D besser, da sie in eine Programmier- sprache eingebettet ist

  24. Ereignisse / Sensoren • VRML: Sensoren sind fertige WerkzeugeÞ Wenig Programmieraufwand • Java3D: Nur Benachrichtigung Þ Mehr Möglichkeiten • Ähnliches Angebot an Interaktionsmöglichkeiten(Es fehlt in Java3D der Sichtbarkeit-Sensor)

  25. Scheduleregionen und Bounding-Boxes • Java3D: Scheduleregionen sind notwendig Þ Optimierung wird 'aufgezwungen' • VRML: • Bounding-Boxes können angegeben werden • Sie existieren nicht für alle Knoten (dezentrale Regelung) • Dieses Feature wird häufig übersehen

  26. Scheduler vs. Route • Kein direkter Vergleich möglich, da die Mechanismen unterschiedliche Aufgaben haben: • Scheduler: 'Nur' Ereignisse werden weitergegeben • Route: • Variablen werden weitergegeben, es entsteht eine Nachrichtenkette • Eine Variablen-Weitergabe kann auch Ereignis sein

  27. Interpolatoren Ähnliches Angebot bei beiden Schnittstellen Java3D: AktivierungsfunktionÞ Mehr Möglichkeiten (z.B. Pendelbewegung)

  28. VRML-Browser in Java3D Es zeigt sich, daß einer Realisierung nichts im Wege steht und daß die Programmier-ung einfacher in Java3D ist als (direkt) in OpenGL.

  29. Java3D: • Verhaltensklassen: • können vererbt werden (Java ist OO) • Einbettung in Programmiersprache • Zentrale Konzepte (Scheduler) • Nicht ganz so einfach zu benutzen, dafür für alles geeignet • VRML: • Umfassende Sensoren • Einfach zu benutzen, aber nicht für jeden Gebrauch • Schlechte Anbindung an Programmiersprachen • Nicht alle Konzepte sind zentral • OpenGL: • keine Animations-Mechanismen Resultatdes Animationsmodell-Vergleichs

More Related