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):
- Keine vorgegebene Struktur: langsam
- Vorgegebene Struktur: schneller
- Vorgegebene starre Struktur: sehr schnell (immer noch Interaktivität/ Animation möglich)
Verschiedenste 'Screen'-, Input- und Sounddevices (durch abstrakte Klassen; sowie gleichzeitig mehrere devices nutzbar!).
View: (andere Ranngehensweise)
- Durch einen Head-Tracker-Einsatz kann die Position und Orientierung verändert werden.
-
Aufsplittung des herkömmlichen Viewknotens in:
- Physical Environment (Input-, Sounddevices)
- Physical Body (Körpergröße, Augeneigenheiten usw.)
- Screen3D (Werte über den zu benutzenden 'Screen')
- Canvas3D (Leinwand)
- View Platform (Position und Orientierung)
- View (Projektionsart; zentrales 'Schaltwerk')