Dieses Dokument beschreibt nicht die allgemeinen Kommandozeilenoptionen von white_dune, sondern nur die Möglichkeiten wie man white_dune ohne die interaktive Eingabe (über Maus, Tastatur und andere Eingabegeräte) in der UNIX- bzw. M$Windows-Kommandozeile benutzen kann. Zur Zeit beschäftigen sich alle diese Möglichkeiten im weiteren Sinne mit der Konvertierung von Dateien.
White_dune unterstützt Erweiterungen des VRML97 ISO/IEC 14772-1:2002
(VRML97 Amendment 1) Standards, z.B. NurbsSurface oder NurbsCurve.
Diese Knotentypen werden nicht von allen VRML Viewern unterstützt,
können aber zu Knoten des älteren VRML97 ISO/IEC 14772-1:1997
Standards wie IndexedFaceSet oder IndexedLineSet konvertiert werden.
Diese Konviertierung kann mit der -vrml97 Option vorgenommen werden.
Dabei wird eine Datei eingelesen und auf die Standardausgabe geschrieben.
Eine Kommandozeile in der Form
dune -vrml97 eingabedatei > ausgabedatei.wrl
konvertiert eine Eingabedatei (entweder eine VRML97 oder eine X3DV Datei)
zu VRML97 ISO/IEC 14772-1:1997 und schreibt sie in die Datei
ausgabedatei.wrl.
Diese Option konvertiert auch die PROTO-Knotentypen SuperEllipsoid,
SuperShape und SuperExtrusion, die normalerweise mit Hilfe des VRML
Scriptknotens berechnet und dargestellt werden, in IndexedFaceSet Knoten.
Diese Option funktioniert genauso wie die -vrml97 Option, sie
schreibt aber eine X3DV Datei (X3D classic VRML encoding
ISO/IEC ISO/IEC 19776-2:2005). Dabei werden die gleichen Konvertierungen
wie bei der -vrml97 Option (Umwandlung von NurbsPatchSurface,
NurbsCurve, usw. SuperEllipsoid, SuperShape, SuperExtrusion).
Eine Kommandozeile in der Form
dune -vrml97vrml97levelx3dv eingabedatei > ausgabedatei.x3dv
konvertiert eine Eingabedatei (entweder eine VRML97 oder eine X3DV Datei)
zu ISO/IEC ISO/IEC 19776-2:2005 und schreibt sie in die Datei
ausgabedatei.x3dv.
Diese Option funktioniert genauso wie die -vrml97 Option, sie
schreibt aber eine X3D Datei (X3D XML encoding
ISO/IEC ISO/IEC 19776-1:2005), speciell für die Multiuserwelt
SUN wonderworld 0.4. Dabei werden auf die Schwächen des
wonderworld X3D importers (keine Unterstützung für Zahlen
in der Form 1E-3, Flächen nur als IndexedFaceSet, Farben nur
mit colorPerVertex true und als Color Knoten mit mehreren Farben)
Rücksicht genommen.
Allerdings gibt es (noch) keine Unterstützung für Knoten
mit colorPerVertex false.
Diese Option konvertiert eine VRML97 Datei mit illegalen Erweiterungen in
eine legale VRML97 Datei.
Im Annex F des VRML97 Standards ist beschrieben, wie ein Hersteller
eines VRML Viewers legale Erweiterungen einbauen kann, ohne dass
andere VRML Viewer die Datei als illegal ablehnen müssen.
Trotzdem gibt es Hersteller von VRML Viewern, die illegale Erweiterungen
einbauen. Illegale Erweiterungen, die neue Nichtstandard-Felder in bisher
standardisierte VRML-Knotentypen einbauen, lassen sich reparieren.
Eine Kommandozeile in der Form
dune -illegal2vrml -prefix prefix protofile.wrl illegal.wrl > legal.wrl
liest eine Datei protofile.wrl ein, die EXTERNPROTOs nach dem
Vorbild des Annex F des VRML97 Standards enthalten.
Die Namen der EXTERNPROTOs sollten mit der gleichen Zeichenkette (im
Beispiel prefix) anfangen.
Im nächsten Schritt wird die Datei illegal.wrl eingelesen
und alle Knotennamen, die identisch mit den Namen der EXTERNPROTOs
ohne die Zeichenkette sind, durch die Namen der EXTERNPROTOs mit
der Zeichenkette ersetzt. Das Ergebnis wird auf die Standardausgabe
geschrieben und landet im Beispiel in der Datei legal.wrl.
Ein Beispiel: Eine VRML97 Datei enthält eine illegal Erweiterung
des VRML97 WorldInfo Knotens (dabei beschreibt die Zeile
$ cat datei
einen Befehl zum eine Datei auszugeben).
$ cat $HOME/worldinfo.wrl #VRML V2.0 utf8 WorldInfo { copyright "(C) illegal extension Inc." info "a existing VRML97 node with a illegal extension" }Dabei ist das Feld copyright eine illegale Erweiterung und kann VRML Viewer abstürtzen lassen.
$ cat $HOME/protofile.wrl #VRML V2.0 utf8 EXTERNPROTO PrefixWorldInfo [ field SFString copyright field MFString info field SFString title ] [ "urn:inet:browser.com:library:PrefixWorldInfo" "PrefixWorldInfo.wrl" ]und der Aufruf zur Umwandlung in eine legale VRML97 Datei lautet:
$ illegal2vrml -prefix Prefix $HOME/protofile.wrl $HOME/worldinfo.wrl #VRML V2.0 utf8 EXTERNPROTO PrefixWorldInfo [ field SFString copyright field MFString info field SFString title ] [ "urn:inet:browser.com:library:PrefixWorldInfo" "PrefixWorldInfo.wrl" ] PrefixWorldInfo { copyright "(C) illegal extension Inc." info [ "a existing VRML97 node with a illegal extension" ] }Die Datei PrefixWorldInfo.wrl kann dann ein PROTO enthalten, das den legalen VRML Knoten nachbildet:
$ cat PrefixWorldInfo.wrl #VRML V2.0 utf8 PROTO PrefixWorldInfo [ field SFString copyright "" field MFString info "" field SFString title "" ] { WorldInfo { info IS info title IS title } }
Diese Option öffnet ein Graphikfenster, konvertiert die Datei ins
AC3D file format (Version AC3Db) und schreibt das Ergebnis auf die
Standartausgabe.
Das AC3D file format ist das Eingabe/Ausgabe Datei-Format
des 3D modellers ac3d. Der ac3d 3d modeller unterstützt einige
Features von VRML/X3D nicht (zum Beispiel keine Animation/Interaktion,
der VRML-Knoten PointSet oder das Feld IndexedFaceSet.colorPerVertex).
Deshalb kann das AC3D file Format im allgemeinen die Informationen, die
in einer VRML97/X3D Datei sind, im allgemeinen nicht speichern.
Diese Option öffnet ein Graphikfenster, konvertiert die Datei ins
Catt geo format (Version 8), und schreibt das Ergebnis in verschiedene
Dateien des in der Kommandozeile angegebenen Verzeichnisses.
Eine Kommandozeile in der Form
dune -catt8geo verzeichnis eingabe.wrl
schreibt die Ergebnisdatei Master.geo (die INCLUDE Befehle der anderen
.geo Ausgabe-Dateien enthält) ins Verzeichnis verzeichnis,
das die Datei material.geo enthalten muss.
Die Datei material.geo wird genauso per INCLUDE-Befehl von Master.geo
benutzt und enthält die Zuordnung von Soundeigenschaften und
den Namen der Objekte in der VRML97 Datei ("DEF Namen").
Hat ein Objekt in der VRML97 Datei keinen Namen, wird im Szenenbaum
(ausgehend vom Material Knoten des Objekts) nach einem Namen gesucht.
Gibt es bis zur Wurzel des Szenenbaums keinen Namen, wird der Name
"TOTREF" angenommen, der in CATT 8 für Totalreflektion fest eingebaut ist.
Eine minimale material.geo Datei könnte so aussehen:
; material.GEO ABS unknown = < 10 10 10 10 10 10 > L < 10 10 10 10 10 10> {128 128 128} CORNERS ; section is empty PLANES ; section is emptyDa CATT Dateien nur aus einem einzigen Verzeichnis lesen kann, müssen seine Dateien src.loc und res.loc ebenfalls im Verzeichnis verzeichnis liegen.