Christian Stein (Diplom Informatiker)

Ein Vergleich der APIs: OpenGL, Java3D und VRML
Funktion OpenGL Java3D VRML
Primitive geometrische Objekte (Punkte, Linien, Flächen) x x x
Komplexere geometrische Objekte (Sphäre, Quader, ...) x Utils x
Ausgefallene geometrische Objekte:      
Gebirgszüge und Extrusion (Eine Grundform, die verschieden breit ist in der Höhe)     x
komprimierte Geometrie   x  
Bezier Kurven und Flächen, Nurbs und Quadrigen x    
Materialeigenschaften / Farben x x x
Licht (directionales, Punkt- und Spotlicht) x x x
Ambientes Licht x x  
Nebel x
(schlecht)
x x
(schlecht)
Sound   x
(sehr gut)
x
Hintergrund, Level of Detail, Billboard   x x
(3D-)Text   x x
(nur 2D)
Morphing   x  
Antialiasing x x x
(starr, primitiv)
Texturen (2D +) x
(+ 3D)
x
(+ 3D)
x
(+ Movie)
Shading beeinflußbar x x  
Pixelweise Beeinflussung des Framebuffers x x  
Wiederverwendung:      
2 Gegensätzliche Mechanismen (share/link + clone)   x  
3 gleichartige Mechanismen (def/use, prototype und inline)     x
Displaylist x    
Picking   x
(abstarkter)
x
(einfacher)
Interpolatoren (Koordinaten-, Positions-, Rotations-, Skalierungs- und Farbinterpolatoren)   x x
weitere Interpolatoren (Transparenz-, Switch- und verschiedenste Path-Interpolatoren)   x  
Zeitgeber   x x
Schedulder & Aktivierungfunktion (Zunahmen, Abnahmen, An, Aus und Wiederholungen beeinflußbar) (Messaging)   x  
Route-Mechanismus (Variablenwertänderung)     x
Viewpoints     x
»Scriptknoten«   x x
Schnittstelle zu anderen Applikationen x2 x3, 4
(einfacher)
x
Anchor   x4 x

2 Ist bei C++ schon dabei
3 soweit das vom Interpreter »erlaubt« wird
4 schon bei Java selber dabei

Besonderheiten von Java3D:

Beeinflußbarkeit des Renderns (3 Stufen):

Verschiedenste 'Screen'-, Input- und Sounddevices (durch abstrakte Klassen; sowie gleichzeitig mehrere devices nutzbar!).

View: (andere Ranngehensweise)