slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Konzeptioneller Vergleich von VRML , Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen PowerPoint Presentation
Download Presentation
Konzeptioneller Vergleich von VRML , Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen

Loading in 2 Seconds...

play fullscreen
1 / 29

Konzeptioneller Vergleich von VRML , Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen - PowerPoint PPT Presentation


  • 118 Views
  • Uploaded on

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?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Konzeptioneller Vergleich von VRML , Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen' - opa


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Konzeptioneller Vergleich von VRML, Java3D und OpenGLhinsichtlich ihrer Eignung zur Erstellung vonAnimationen

vonChristian Stein

bersicht
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
motivation
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
was ist opengl java3d und vrml
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?
opengl
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
java3d
public BranchGroup createSceneGraph()

{

BranchGroup objRoot =newBranchGroup();

TransformGroup objTrans =newTransformGroup();

objRoot.addChild(objTrans);

objTrans.addChild(newColorCube(0.4));

objRoot.compile();

return objRoot;

}

Java3D
slide8
#VRML V2.0 utf8

Transform

{

children

[

Shape

{

geometry Sphere { }

appearance Appearance

{

material Material { diffuseColor 0.8 0 0 }

}

}

]

}

VRML
opengl1
OpenGL
  • Alle Zwischendaten werden nach der Rastererung vergessen (Hauptaufwand der Berechnung ist davor L)
  • Noch Operationen auf Pixelebene möglich, aber unhandlich
slide12
Sensoren erzeugen Ereignisse

Alle empfangen und senden, bzw. senden weiter

Interpolatoren und Scripte berechnen neue Werte

VRML
route mechanismus vrml
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
sensoren und interpolatoren vrml
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]
script knoten struktur vrml
Script-Knoten - Struktur (VRML)

Script

{

# Interface-Teil = Variablen

# Script-Teil = Funktion die ausgeführt werden

}

der scheduler java3d
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)
interpolatoren java3d
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.
verhalten klasse java3d
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);

}

}

verhaltens klasse vs script knoten
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
ereignisse sensoren
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)
scheduleregionen und bounding boxes
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
scheduler vs route
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
slide27

Interpolatoren

Ähnliches Angebot bei beiden Schnittstellen

Java3D: AktivierungsfunktionÞ Mehr Möglichkeiten (z.B. Pendelbewegung)

vrml browser in java3d
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.

resultat des animationsmodell vergleichs

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