VRML Einführung

|

|
Warum VRML?
|
 |
- Die Virtual Reality Modeling Language (VRML) ist eine
Beschreibungssprache für 3D-Szenen,
deren
Geometrien,
Ausleuchtungen,
Animationen und
Interaktionsmöglichkeiten inklusive in der virtuellen Umgebung
platzierter Geräuschquellen. Siehe z.B.
http://de.wikipedia.org/wiki/Virtual_Reality_Modeling_Language
- VRML lässt sich perfekt zur Veranschaulichung räumlicher Szenarien
einsetzen
- Der Betrachter kann auf vielerlei Arten in das Szenario eingreifen:
einerseits indem er es nach Belieben drehen und wenden oder selber durch
die Szene gehen und sie von verschiedenen Perspektiven aus betrachten
(anzutreffen z.B. bei vielen Verkaufsportalen im Internet, wo man etwa
eine Kamera "nehmen" und von allen Seiten betrachten kann).
- Der Betrachter kann interaktiv eingreifen, er kann beispielsweise
Objekte verschieben (angenommen, wenn eine Einrichtung umgruppiert
werden soll), er kann Ereignisse auslösen usw.
- VRML ist zwar schon einige Jahre alt, Nachfolgeprogramme (z.B. U3D)
scheinen noch nicht so weit gediehen zu sein, dass man sie leicht
einsetzen kann
- Viele 3D-Programme gestatten den Export des Ergebnisses in eine VRML
Datei (Blender, CAD3D, usw.)
- Die exportierte Datei ist unmittelbar in einem Browser anzusehen
(zuvor muss allerdings ein VRML-Plugin installiert worden sein):
VRML plugin: Cortona3D
Viewer* (Hilfe),
andere: Cosmo Player,
Flux Player
|
oder, etwas strenger formuliert aus
http://old.hki.uni-koeln.de/teach/ss07/hs/tag3/vrml_referat.pdf
- VRML stellt ein mächtiges Konzept zur Animation und
Benutzerinteraktion bereit
-
Viele Knoten können Ereignisse (events)
empfangen und auslösen
-
Durch ROUTE können Ereignisse miteinander verbunden werden um komplexe Änderungen an der Szene vorzunehmen
-
Spezielle Knoten, sog. Sensoren,
können events abhängig von Benutzereingaben oder nach einer bestimmten
Zeit auslösen
|
Quellen
|
http://fabdq.fh-potsdam.de/bhv/content.html
http://www.debacher.de/vrml/vrml.htm
http://geometrie.diefenbach.at/VRML/Beispiele.htm
s http://docs.rinet.ru/HTMLnya/contents.htm
http://tecfa.unige.ch/guides/vrml/vrmlman/node1.html
www.gup.uni-linz.ac.at/vrcave/VRIC041124-VRML.pdf
http://staff-www.uni-marburg.de/~hase/internet/ws_vrml/vrml.htm
www.brichzin.de/seminarfach/SA07_VRML.pdf
http://www.uni-forst.gwdg.de/~wkurth/cg08_v12.doc |
Vorbereitungen
|
- Wie schon angeführt, muss ein Plugin installiert werden, dieses
erhält man leicht bei
http://www.cortona3d.com/Products/Cortona-3D-Viewer.aspx
Als erstes sollte man sich mit den Möglichkeiten bekanntmachen, die das
Plugin bietet (Bewegen des Objektes, Herumgehen, Überfliegen usw.)
- Wie gesagt kann man fertige Szenarien aus dem 3D-Programm
exportieren und hat dann sofort eine VRML Datei. Diese ist allerdings
nicht mit der feinen Klinge programmiert sondern eher mit der
Kettensäge. Zart besaitete Gemüter werden darunter sehr leiden und daher
sofort zur eigenen Programmierung greifen, die man sehr geistvoll und
subtil gestalten kann.
- Für die eigene Programmierung verwende ich immer den "html editor
phase 5" , erhältlich hier:
http://www.phase5.info/ Durch die vielfältige Sprachunterstützung
eignet sich das Programm auch zur Editierung anderer Quelltexte (z.B.
JavaScript, php, python). Die Syntax-Highlighting-Funktion erkennt
automatisch den Sprachtyp. Ein fertiges Skript kann man jederzeit
begutachten (F9)
- Als weiteres unterstützendes Programm neben Phase 5 wird man um eine
Tabellenkalkulation nicht herumkommen, da VRML keine Berechnungen
durchführen kann.
- Ein fertiges Skript wird dann unter der Bezeichnung irgendwas.wrl
gespeichert und ist dann für den Browser erkennbar.
|
Vorteile - Nachteile - Vorsichtsmaßregeln
|
- Zuvor die EISERNE REGEL FÜR JEDES PROGRAMMIEREN,
zurückgehend auf den schönen, Wittgenstein zugeschriebenen Satz
- „Alles
was man sagen kann, kann man klar sagen".
Diesen sollte man ausbauen zu
einer eisernen Regel für Programmierer
- "Alles was man programmieren
kann, kann man auch klar programmieren" bzw. von mir verschärft zu:
- "Jedes
Programm, das nicht auf eine Seite passt, ist ein Schmarren".
- Die Programmierung ist außerordentlich vielseitig und gestattet die
Darstellung nahezu unbegrenzt vieler geometrischer Strukturen.
- Objekte können mit Farben und Texturen versehen werden.
- Bewegungen und allgemeiner Ereignisse können programmiert werden
- Ein Nachteil ist, dass keine Möglichkeit vorgesehen wurde für
Boole'sche Operationen
- Ein weiterer Nachteil: VRML kennt keine mathematischen Funktionen,
kann daher nicht selber rechnen. Alle Werte (z.B. wird man immer wieder
die Koordinaten der Punkte des Einheitskreises benötigen) müssen extern berechnet und
sozusagen manuell übergeben werden. Dies geschieht am besten durch eine
Tabellenkalkulation. Die errechnete Liste kann einfach in den
verwendeten Editor (z.B. Phase 5) hinüberkopiert werden, allerdings
müssen dann noch die Dezimalkommas durch Dezimalpunkte ersetzt werden.
- Die Programmierung längerer Skripte erfordert eine gewisse
Aufmerksamkeit; um keine Klammern zu verlieren halte ich mich EISERN
(!!) an die Regel:
zusammengehörende Elemente soweit als möglich in einer Zeile
unterzubringen
die öffnenden ( { [ Klammern und die dazugehörigen
schließenden ) } ] unter allen Umständen entweder in EINER Zeile
unterzubringen
oder genau untereinander anzuordnen.
Skripte mit unnötig vielen Zeilen (wie in den
meisten Beispielen im Internet) sind schwer zu überblicken und schon gar
auf Fehler durchzugehen. Man sollte sich nicht von den im Internet
kursierenden Beispielsskripten abschrecken lassen; wie vielfach im
Unterricht als Sport betrieben, lassen sich diese oft auf 10% ihres
Umfanges reduzieren. Die meisten kursierenden Skripte haben vermutlich
als Hauptzweck eine gewisse G'schaftelhuberei des Autors und nicht die
leichte Durchschaubarkeit an sich banaler Sachverhalte. - Selbstverständlich muss Groß- und Kleinschreibung genau beachtet
werden.
- Jedes Skript muss als einleitende Zeile haben:
#VRML V2.0 utf8
und unter dem Namen irgendwas.wrl gespeichert werden, damit es vom
Browser als solches erkannt und dementsprechend dargestellt werden kann. - Banale Dinge sollten in eigene Dateien ausgegliedert werden (wenn
man z.B. eine Liste mit 100 Punkten benötigt).
- Wie meine Blender Einführung soll auch dieses Skriptum die ersten
Schwierigkeiten beheben helfen und einen Überblick bzw. Ausblick auf die
umfangreichen Fähigkeiten des Programmes. Dazu dienen auch die vielen
Beispielsskripte, aus denen man so manchen Trick besser herauslesen und
verstehen kann als durch hochgestochene Erklärungen.
Achtung: auf eine vollständige Blender Referenz oder auf
Vollständigkeit in welcher Richtung auch immer wird ausdrücklich kein
Wert gelegt. - Wenn man Skripte
(und nicht das Objekt) in einer html-Datei zur Verfügung stellen will,
muss man sie maskieren mit:
<pre> ... Skript ... </pre> |
Programmierhilfen, VRML Editoren
- Falls einem die Programmierung einmal doch zu steil dein sollte,
kann man Zuflucht nehmen zu VRML-Editoren
WhiteDune samt umfangreicher
Beschreibung
- Eine weitere Hilfe sind die Exportfunktionen diverser cad-Programme.
Diese erzeugen aber riesige Dateien, da sie das Objekt ohne Rücksicht
auf seine geometrische Struktur mit einem Triangulierungsnetz überziehen
und dieses dann mit indexedFaceSet abbilden lassen. Das läßt sich häufig
vermeiden, oft jedoch auch nicht, vor allem dann, wenn Boole'sche
Operationen vorgenommen wurden.
- Mein Vorschlag: man verwende solche Dateien nur dort, wo es nicht
anders geht, füge sie natürlich nicht direkt in das Skript ein sondern
über den inline Befehl und programmiere den Rest eigenhändig und
sparsam.
- VRML ist im Internet ganz außerordentlich üppig vertreten. Die
angebotenen Erklärungen reichen vom "einfachen Kochrezept" bis zu
perfekter Theorie (auch einfache Rezepte können begeistern, nicht nur in
der Küche, siehe "Ratatouille").
Eher in die Rubrik "frisch aus der Giftküche" sind viele der angebotenen
Beispielsskripte einzuordnen, die vor allem den Zweck zu haben scheinen,
einfache Sachverhalte soweit zu verkomplizieren, bis sie nicht mehr
verstanden werden können. Dinge, die man selber auch programmieren kann,
sollte man auch selber programmieren; wenn man ein veröffentlichtes
Programm verwenden will, sollte man es unbedingt (!!) vorher
vereinfachen, und zwar schrittweise: Unnötiges in kleinen Schritten
vorsichtig herauslösen und das Skript dann sofort auf Lauffähigkeit
prüfen, erst dann weitere Schritte unternehmen. Bei Syntaxfehlern öffnet
sich ein Fenster mit einem meist hilfreichen Fehlerbericht.
|
Quellen:
http://fabdq.fh-potsdam.de/bhv/content.html
http://www.debacher.de/vrml/vrml.htm
http://docs.rinet.ru/HTMLnya/contents.htm
http://tecfa.unige.ch/guides/vrml/vrmlman/node1.html
www.gup.uni-linz.ac.at/vrcave/VRIC041124-VRML.pdf
http://staff-www.uni-marburg.de/~hase/internet/ws_vrml/vrml.htm
http://www.brichzin.de/seminarfach/SA07_VRML.pdf"
|
 |