Computergrafik
WS 2001/02
Prof. Dr. W. Kurth - Dr. E. Roth
VRML-Kurs
Teil 1
VRML:
Virtual Reality Markup Language
VRML-Szenen in ASCII-Dateien abgelegt
Standardisierung: Dieselbe Szene durch verschiedene Browser darstellbar
VRML-Umfang:
3D-Grafik
+ Dynamik (Animation)
+ Interaktion
+ Klang
+ Internetfähigkeit (VRML-Browser als Plugin von Webbrowsern)
Versionen: VRML 1.0, 2.0, 97
Features:
Geometriebeschreibungen |
Grundprimitive (Quader, Zylinder, Kegel,
Kugel) |
Materialbeschreibungen |
Farbe |
Beleuchtungsbeschreibungen |
|
Texturbeschreibungen |
|
Textbeschreibungen |
|
Transformationen |
Translationen |
Animationen |
Zeit |
Hintergrund und Nebel |
|
Interaktionsbeschreibungen |
|
Multimediabeschreibungen |
Video |
Strukturbeschreibungen |
Gruppierung |
Detaillierungsbeschreibungen |
LOD = level of detail |
Kamerabeschreibungen |
Viewpoints |
Hypermediabeschreibungen |
Anchors |
Beschreibung von Programmierlogik |
Java |
Geschichte
VRML-Browser
Cosmo Player Download:
http://www.cai.com/cosmo/
World View (dito)
Open Worlds
....
Seite mit Links zu verschiedenen Download-Sites:
http://www.web3d.org/vrml/vrml.htm
Cosmo Player 2.1 für Win95/NT: Plugin zu Netscape 3.01 und höher, MS Internet Explorer 4.x und höher.
Jeder Browser stellt Navigationshilfen für den 3D-Raum zur
Verfügung
Anordnung und Bezeichnungsweisen browserspezifisch, aber ähnliche
Grundfunktionen.
Hier für Cosmo Player:
6 Haupt-Navigationsmodi
Gehen Neigen Gleiten |
Go Tilt Slide |
Bewegungen in der horizontalen Ebene Änderung des Blickwinkels Bewegungen in der vertikalen Ebene |
Rotieren Schwenken Zoomen |
Rotate Pan Zoom |
lässt die Szene rotieren Eigenbewegung um eine Szene, Änderung des Abstands von der Szene |
Die eigentliche Navigation erfolgt mit der Maus. Die Form des Mauscursors zeigt an, welcher Navigationsmodus aktiv ist. Zwischen der oberen und der unteren Dreiergruppe wird mit einem virtuellen Hebel umgeschaltet ("Steuerelemente ändern"; auch durch Hotkeys (Tastatur) möglich).
Schaltfläche mit Funktionen der ersten Gruppe
Schaltfläche mit Funktionen der zweiten Gruppe
Zusätzliche Sonderfunktionen:
Gravitation |
Gravity |
in hügeliger Landschaft am Boden bleiben (man folgt den Höhen und Tiefen der Oberfläche) |
Treiben |
Float |
erlaubt, zu fliegen |
Suchen |
Seek |
durch Anklicken eines Objekts bewegt man sich an dieses heran |
Bewegung rückgängig machen |
Undo move |
|
Bewegung wiederherstellen |
Redo move |
|
Richten |
Straighten |
man wird in eine Orientierung senkrecht zur Horizontalebene gebracht |
Viewpoint |
|
man kann Blickpunkte speichern und mit Namen versehen |
Preferences |
|
Aktivierung des Voreinstellungs-Menüs |
COSMO |
|
Hyperlink zur Webseite von Cosmo |
Help |
|
Online-Hilfe (HTML) |
Warnleuchten |
|
werden aktiv bei Fehlern, |
VRML-Dateien
Endung .wrl ("world")
ASCII-Datei (genauer: ab V. 2.0 UTF-8 Zeichensatz gem.
ISO 10646-1:1993)
Aufbau einer VRML-Datei:
Zuordnung von Feldangaben zu Knoten mit geschweiften Klammern
{ ... }
Gruppierung von Knoten durch Gruppen-Knoten, "Kinder" in eckigen Klammern
[ ... ]
Beispiel einer VRML 1.0-Datei:
#VRML V1.0 ascii
# created by W. K. 2001
# Huette
# zeichne den Rumpf
Cylinder
{
height 2
radius 2
}
# Verschiebung des Koordinatenursprungs
Translation
{
translation 0 2 0
}
# zeichne das Dach
Cone
{
bottomRadius 2.5
}
Ergebnis:
Beispiel einer VRML 2.0 - Datei:
#VRML V2.0 utf8
Shape
{
geometry Box
{
size 1 4 1
}
appearance Appearance
{
material Material
{
diffuseColor 0.5 0.5 0.5
}
}
}
Ergebnis:
Header für VRML 97:
Felder, für die keine Spezifikation angegeben wird, werden automatisch mit Default-Werten besetzt. Z.B. ist
Cylinder { } ein Zylinder mit Höhe 1 und Radius 1.Die Primitiv-Objekte (Würfel, Zylinder, Kegel, Kugel) werden standardmäßig um den Nullpunkt zentriert.
#VRML V1.0 ascii
Cube
{
height 4
}
Þ
Säule, die sich 2 Einheiten nach oben und unten und je 0,5 Einheiten nach rechts, links, vorn und hinten erstrecktÜberlagerung von 3 verschieden dimensionierten Quadern zu einem "Koordinatenkreuz":
#VRML V1.0 ascii
Cube
{ width 25 }
Cube
{ height 25 }
Cube
{ depth 25 }
Das
parts-Feld dient dem Selektieren von Teilmengen der Primitivobjekte:#VRML V1.0 ascii
Cylinder
{
radius 3
height 0.7
parts (SIDES)
}
#VRML V1.0 ascii
Cylinder
{
radius 3
height 0.7
parts (TOP)
}
Transformationsknoten transformieren das Koordinatensystem für folgende Konstruktionen (vgl. PostScript):
#VRML V1.0 ascii
Cube
{ height 0.1 width 10 depth 20 }
Translation
{ translation -3 4 0 }
Cube
{ height 8 }
Translation
{ translation 6 -2 0 }
Cube
{ height 4 }
Translation
{ translation 0 4 -3 }
Cylinder
{ height 12 }
Ergebnis:
Felder der bisher eingeführten geometrischen Primitiv-Knoten (VRML 1.0):
Cube
{
width
height
depth
}
Sphere
{
radius
}
Cylinder
{
height
radius
parts
Textausgabe in VRML
#VRML V1.0 ascii
AsciiText
{
string "Text"
}
Ergebnis:
Felder des
AsciiText-Knotens:AsciiText
{
string
FontStyle-Knoten:
FontStyle
{
family
Letzte Aenderung: 19. November 2001