"White_dune" was ist das ?

White_dune ist ein graphischer VRML97/X3DV Editor, ein simpler (NURBS) 3D Modeller und ein Animationwerkzeug in Entwicklung.
Es kann ein VRML97/X3DV file lesen, stellt dessen Szenengraph dar und erlaubt es dem Benutzer, den Szenengraph, die Fieldwerte und Routes zu verändern.
White_dune kann benutzt werden, um 3D-Modelle, Animationen und Interaktionen in VRML97/X3DV zu verbessern oder zu erstellen.
Als einziges 3D Modelling Werkzeug ist es verglichen mit der Konkurrenz noch etwas schwach. Es ist sinnvoll, noch zusätzlich einen statischen 3D Modeller mit VRML97 Export (wie z.B. wings3D oder Art Of Illusion) einzusetzen.
Der Vorteil von white_dune gegenüber den meisten anderen 3D Modellern ist, dass das Beleuchtungsmodell und der innere Aufbau von white_dune auf den VRML97/X3DV Standards basiert. Dadurch lassen sich die Möglichkeiten von VRML97/X3DV bei einer Nachbearbeitung oder Erstellung mit white_dune besser nutzen.
Verglichen mit den allgemein einsetzbaren 3D Modellern (die meinstens nur Mesh (IndexedFaceSet) und Interpolatorknoten exportieren koennen) unterstützt white_dune alle VRML97 Knoten und einen Grossteil der Knoten der X3D Standards.

"White_dune" abgestürzt, bisherige Arbeit verloren ?

White_dune wird dauernd weiterentwickelt und läuft daher nicht immer so stabil, wie es sollte.

Wenn white_dune abgestürzt ist, ist die bisherige Arbeit verloren ?

Nein, nicht zwingend.

"white_dune" versucht noch, die VRML97 Datei kurz vor dem Absturz zu speichern. Das funktioniert nicht immer, vor allem wenn der Fehler, der den Absturz verursacht hat, die interne Datenstruktur zerstört hat (das passiert allerdings eher selten). Wenn die Datei erfolgreich geschrieben worden ist, schreibt white_dune unter Unix/Linux

   Internal Crash !
   Try to save Files
   attempt to write file to /home/someone/.dune_crash_NUMBER_NUMBER.wrl
   write sucessfull
auf die Standartfehlerausgabe des white_dune starteten Fensters und auf die Systemkonsole (z.B. das Fenster der "xconsole" Anwendung).
Die wichige Zeile ist dabei die Zeile "write successfull" ("erfolgreich geschrieben").
Unter M$Windows erscheint (ggf. nach Drücken von "ignorieren/ignore", falls man nach einer Debugger gefragt wird) eine entsprechende Messagebox

Wenn sie dann white_dune neu starten und das file Menü öffnen, sollten Sie den Dateinamen des .dune_crash Files sehen.

Klicken Sie darauf und speichern Sie in eine andere Datei.

Wenn der Fehler, der zum Absturz geführt hat, die interne Datenstruktur im Programm beschädigt hat, kann diese Methode versagen.
In diesem Fall lohnt es sich nach temporären Daten (".dune_*") im Verzeichnis der VRML-Datei zu suchen, die bei der Ausführung von Datei->Vorschau oder Datei->Textedit entstanden sind.
Diese Dateien werden bei einem normalen Programmende gelöscht, nicht aber bei einem Programmabsturz.
Wenn white_dune sehr oft abstuertzt, aber alle Daten erfolgreich gerettet werden konnten, kann es Sinn machen, diese überflüssigen Datein zu suchen und löschen, um verschwendeten Plattenplatz zurückzugewinnen.
Neben Dateien zur Vorschau und zum Editieren mit einem Texteditor speichert white_dune auch den Inhalt eines editierten Script-Knotens zur Verwendung in einem Texteditor in temporären Dateien.

"White_dune" mit deutschen Menues starten

Um white_dune mit deutschen Menues zu starten, muss die Kommandozeilenoption "-german" benutzt werden. Currently 3 commandlineoptions for languages are available:


Da es unpraktisch ist, das dauernd in eine Kommandozeile einzutippen, gibt es einen zweiten Weg, um die Sprache auszuwaehlen. Unter Linux/UNIX wird das über die Umgebungsvariable LANG erledigt. Wenn die ersten beiden Zeichen dieser Umgebungsvariable "de" ist, werden deutsche Men&umml;s benutzt, sind sie "it", werden italienische Men&umml;s benutzt.
Wenn man mit einer deutschen Umgebung arbeiten will, bei der $LANG entsprechend gesetzt ist, man aber trotzdem mit englischen Menüs arbeiten will, muss man die -english Kommandozeilenoption benutzt werden.
Das kann das über ein Shellskript (Linux/UNIX/MacOSX) oder Batchfile (M$Windows) gemacht werden.
Wenn Sie kein entsprechendes File (z.B. "germandune") finden, können Sie sie sich eines mit den Kommandozeilen: anlegen. Für MacOSX können Sie in der Datei white_dune.app/Contents/MacOS/dunestarter die Zeilen mit den Optionen für den Programmstart
   DUNEOPTIONS=" "
   export DUNEOPTIONS
um die -german Option ergänzen:
   DUNEOPTIONS="-german "
   export DUNEOPTIONS
Für andere exotische UNIX desktops finden sich entsprechende Optionen in den folgenden Dateien: Auf ähnlicher Weise ist es möglich, andere Kommandozeilenoptionen von white_dune zu benutzen. Die man page von white_dune (in englischer Sprache) zeigt andere Optionen.
Die wichtigsten Optionen sind: Die Menüs und Dialoge von white_dune können in andere Fremdsprachen übersetzt werden, ohne dass besondere Programmierfähigkeiten benötigt werden.
Wenn Sie sich dafür interessieren, die Menues und Fehlermeldungen von white_dune in ein neue Fremdsprache zu übersetzen (dazu sind keine Programmierfähigkeiten notwendig), dann lesen Sie bitte das Schritt fuer Schritt Kochrezept in englischer Sprache in der Entwicklerdokumentation.

Was bedeuten Szenengraph, Fieldwerte und Routes usw. ?

White_dune ist ein Lowlevel Werkzeug zum Bearbeiten von VRML97 Files. Dabei wird angenommen, dass dem Benutzer die grundlegende Struktur von VRML97 bekannt ist.
Ausführliche technische Informationen zu VRML97 findet man in der offiziellen ISO Spezifikation unter http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1. Für die Benutzung von White_dune ist vor allem die Node Referenz http://www.web3d.org/x3d/specifications/vrml/ISO-IEC-14772-IS-VRML97WithAmendment1/part1/nodesRef.html wichtig.
Eine kurze Einführung in die VRML97 Struktur in deutscher Sprache finden Sie im Internet unter http://129.69.35.12/vrml/linuxtag/scenengraph.html. Ein gutes, einfaches Tutorial über VRML97 für Einsteiger in englischer Sprache findet sich (ausser in einer Anzahl entsprechender Bücher) unter http://web3d.vapourtech.com/tutorials/vrml97/.

Was "white_dune" nicht kann und was es kann

Man findet einige typischen VRML Beispiele (die man in white_dune) laden kann hier, aber man muss sich darüber im Klaren sein, dass diese Beispiele keine Modelling- oder Animations-Features zeigen, sie zeigen hauptsächlich VRML97 Beispiele über Interaktion und Scripting. Das sind Features die in white_dune (noch) nicht korrekt angezeigt werden können.
Die Beispiele dienen als Ausgangsbasis, um mit white_dune interaktive 3D-Welten zu erstellen, die dann später mit einen "richtigen" VRML Browser benutzt werden können.

Die 5 Fenster von "white_dune"


Neben diversen Toolbars für Icons und Nachrichten besteht "white_dune" im wesentlichen aus 5 Fenstern. Ausser dem "3D Preview" Fenster lassen sich die Fenster über den Menüpunkt "View" angepasst an den jeweiligen Arbeitsschritt ein- und ausschalten.

Navigation

Um im 3D Preview Fenster navigieren zu können steht zur Verfügung:

zusätzlich steht ab der Version 0.16 eine SGI artige Navigation zur Verfügung. Bitte beachten Sie, dass ein fehlkonfigurierter Windowmanager diese Eingaben für seine eigenen Zwecke interpretieren könnte... Ist ein 6D Eingabegerät aktiv, kann bei angewähltem Scene-Icon im Scene Tree Fenster je nach der Auswahl der Transformicons durch das VRML File navigiert werden.

Verändern des Szenengraph

Einen neuen VRML node mit eine Mausklick auf das entsprechenden Icon hinzufügen ist der einfachste Weg, den Szenengraph zu ändern.
Um ein VRML Knoten Icon zu identifizieren, bewegen Sie den Mousezeiger über das Icon und warten Sie kurz. Ein beschreibender Text wird auf der statusbar am unteren Ende des Fensters erscheinen.
White_dune versucht, entweder den neuen node am blau untermalten Selektionspunkt des Szenengraph

oder am root node des Scenengraph ("Scene" Icon) einzufügen.
White_dune graut alle node Icons aus, die nicht eingefügt werden können.


Die folgende Tabelle zeigt die Anforderung für die entsprechenden Knoten im VRML97 Standard:

So muss zum Beispiel ein Appearence Knoten selektiert sein, damit ein ImageTexture Knoten eingefügt werden kann, oder ein Shape Knoten selektiert sein, damit ein Appearence Knoten eingefügt werden kann.
Alle die entsprechenden Felder im VRML97 Standard sind vom Datentyp SFNode, deshalb kann nur ein Knoten eingefügt werden. Deshalb wird ein Icon auch dann ausgegräut, wenn schon ein entsprechender Knoten vorhanden ist.
Zum Beispiel können keine zwei ImageTexture Knoten zu einem Appearence Knoten hinzugefüt werden. Deswegen ist das ImageTexture Icon ebenfalls ausgegraut, wenn ein Appearence Knote selektiert wird, aber ein ImageTexture Knoten schon vorhanden ist.
Nach dem VRML97 Standard brauchen auch die Körper Knoten Box, Sphere, Cone, Cylinder, IndexedFaceSet, IndexedLineSet, PointSet, ElevationGrid, Extrusion und Text als Vorraussetzung einen Shapeknoten. Da in der Mehrzahl der Fälle bei der Benutzung dieser Shape.geometry Knoten die benötigte Struktur klar ist, wird beim Klicken auf die Icons und bei der Benutzung der Erzeugen -> Koerper -> Menüpunkte eine vollständige Shape-Struktur (einschliesslich eines umschliessenden Transform Knoten) aufgebaut.
(Neu in Version 0.29beta) Ist bei der Erzeugung so eines Shape-Knotens kein Knoten angewählt in den der Shape-Knoten passt, so wird der umschliessende Transform Knoten so aufgebaut, dass der neue Knoten direkt vor dem aktuellen Kamerapunkt erscheint).

Die Kommandos Bearbeiten -> kopieren, Bearbeiten -> einfügen und Bearbeiten -> löschen arbeiten so wie die gleichen Kommandos in vielen Programmen. Wenn der letzte Mausklick in den Scene Tree geht, können Sie benutzt werden, um den Szenengraph wie erwartet zu verändern.

Ein ungewöhnliches Kommando ist das Bearbeiten -gt; Kopiere Zweig bis zur Wurzel Kommando. Es kopiert alle Knoten entlang des Pfads bis zur Wurzel des aktuellen Szenengraph Zweigs in den Einfügen Puffer. Das kann sehr nützlich sein, um einen Szenengraphzweig zu duplizieren und aufzuspalten.

Ein anderer Weg, den Szenengraph zu verändern, ist Teile davon mit der Maus herumzuschieben.
White_dune zeigt das Icon eines Stopschildes, wenn der Zielknoten dies nicht erlaubt.

Wenn der Zielknoten es erlaubt, benutzt white_dune den normalen Mauszeiger.

Ein Ziel ist nicht eindeutig, wenn der Ziel node mehrere SF/MFNode fields hat.

Knoten mit mehreren Fields vom Typ SF/MFNode (zum Beispiel der collision Knoten) werden im Scenetree immer mit den entsprechenden Feldnamen dargestellt (auch wenn die Einstellungen im Optionen -> Allgemeine Einstellungen... Dialog anders sind), damit die Field Namen als Ziel benutzt werden können.

Genauso wie beim lokalen kopieren/verschieben im Explorerprogramm von M$Windows2000 und ähnlichen Filemanagern kann man das Verhalten beeinflussen, wenn man die Tastatur benutzt, nachdem man angefangen hat, den VRML Knoten herumzuschieben:

Die Benutzung von USE

(neu in Version 0.29beta)
Neben der oben gezeigten drag and drop Methode gibt es einen weiteren Weg um das USE Konstrukt zu benutzen. Die USE Konstruktion ist so etwas wie ein ununterscheidbarer Zeiger, die nochmal-Benutzung eines bereits existierenden Knotens. Der Knoten, der ge-USE-t werden soll braucht einen DEF Namen, der mit Bearbeiten -> DEF zugewiesen wird. Bearbeiten -> USE (falls möglich) erzeugt ein neues USE des letzten ge-DEF-ten Knotens an der Stelle des angewählten Knotens.
Wird der ge-DEF-te Knoten geändert, ändert sich der get-USE-te Knoten ebenfalls.
Wird der ge-USE-te Knoten geändert, ändert sich der get-DEF-te Knoten ebenfalls.
In white_dune (anders wie wenn man einen Texteditor für eine VRML97 Datei benutzt), can man den ge-DEF-ten Knoten löschen. Der zuerst geschreibene ge-USE-te Knoten wird dann zum neuen ge-DEF-ten Knoten, der Grund liegt daran, dass das DEF/USE ununscheidbare Zeiger bedeuten.
Die Benutzung von USE ist sinnvoll, um VRML Dateien klein zu halten (was bedeutet, dass die Dateien schneller im Internet ü:bertragen werden können), erhöht die Wartbarkeit und kann von einem entsprechend programmierten VRML Browser dazu genutzt werden, dass Objekte schneller gezeichnet werden.
Zusätzlich Kommandos die USE benutzen sind das array Werkzeug und manche der folgenden "create" Szenegraph Operationen.

Szenengraph Operationen

(new in Version 0.27beta)
Es gibt (noch) keinen Weg, um mehrere Knoten im Szenengraph zu verschieben. Als Workaround gibt es Operationen, die auf alle Knoten im Szenengraph Zweig, der dem angewälten Knoten folgt (einschliesslich des angewälten Knotens), wirken.

Die verfügbaren Kommandos sind Sie unter dem Menupunkt Aktion -> Rest des Szenegraph-Zweigs erreichbar: Leider sind einige dieser Operationen (noch) sehr langsam.

Eingabe/Löschen von ROUTE's

In white_dune gibt es zwei verschiedene Einstellungen, die entscheiden, wie eine ROUTE eingegeben werden kann.

ROUTEs werden in white_dune angelegt, indem man das entsprechende Icon im RouteView Fenster findet (klicken auf die Icons selektiert die entsprechenden Icons im Scene Tree Fenster), auf die Kästchen für die Events klickt. Dabei wird der Name des Events angezeigt und es lässt sich eine Linie zum nächsten Icon/Event ziehen.

Es können (wie im VRML Standard verlangt) nur Events mit gleichen Datentypen (gleiche Farbe der Kästchen) verbunden werden.
Zum Löschen der ROUTEs kann die Linie einfach durchgestrichen werden.

Als Vorschlag für Anfänger sind einige Event-Kästchen mit einem kleinen roten Punkt markiert. Der rote Punkt zeigt wichtige/oft benutzte Events.
Natürlich hängt die Wichtigkeit/Benutzungshäufigkeit eines Events vom Thema der VRML Welt ab. Alle Sensor Knoten (die eigentlich Quelle bei der Verarbeitung der meisten Events) haben mit roten Punkten markierte Event-Kästchen.

Bei komplexen VRML Welten mit vielen Objekten (zum Beispiel dem VRML Export aus einem 3D-Modelling-Programms wie Wings3D, Blender, AOI, Catia, 3D Studio Max, Maya usw.) kann es sehr schwierig werden, die gewüschten VRML Knoten im RouteView Fenster wiederzufinden.

Es gibt Befehle, um zum angewälten Knoten zu springen (mit Routes -> Kein Zoom/Sprung zur Auswahl)

oder die Ansicht des Routeview zu vergrössern (mit Routes -> Herauszoomen)

aber in diesem Fall empfiehlt sich der Einsatz des Inline VRML-Knotens. Damit ist es möglich ist statische Objekte (die zum Beispiel Teil der Umgebung oder Teil von starren Objekten sind) in eigene VRML Dateien auszulagern, so dass die gesamte VRML-Welt nur noch aus sehr wenigen VRML Knoten besteht.

Befehle, die automatisch ROUTEs erzeugen
Es gibt zwei Befehle, die automatisch neue ROUTEs erzeugen.

Fieldwerte verändern

Es gibt mehrere Möglichkeiten, Fieldwerte zu verändern:

Vereinfachtes Skriptbau-Verfahren (neu in Version 0.22beta)

Bevor man den Scripteditor Dialog benutzen kann, muss man planen, welche Datentypen und eventIn/eventOut Informationen die Knoten haben, die man anschliessen will. Dazu muss man die Knotenbeschreibung des VRML standards (zum Beispiel über den Menüpunkt Help -> Name des gerade selektierten Knoten lesen (oder ein entsprechendes Buch benutzen).
Zum schnellen Ausprobieren kann es dagegen angenehmer sein, das vereinfachte Skriptbau-Verfahren zu benutzen.
Erzeugen Sie einen "leeren" Scriptknoten mit dem "Script" icon (oder benutzen Sie den Menüpunkt Erzeugen -> Programmierung -> Script).
Gemäss der "Weg da!" Philosophie des ursprünglichen dune Projekts drücken Sie einfach nur "OK" im Scripteditor Dialog (siehe oben).
Jetzt wird das RouteView Fenster für die weitere Arbeit benutzt.



Scriptknoten haben ein spezielles "connect anything" ("verbinde alles") eventOut. Wenn man draufklickt, die Maustaste festhält und die Maus verschiebt ("drag") wird eine weisse Route gezeichent



Wenn man die Maustaste gedrückt hält, kann man sehen, dass man diese Route (wie beim "normalen" Routing) an eventIns anderer Knoten anschliessen kann,



dass aber (im Gegensatz zum "normal" Routing) die Farbe dieser Route (also eigentlich der Datentyp) mit dem abgefragten eventIn wechselt.



Wenn man die Maustaste loslässt, wird die Route vollendet.



Entsprechend lässt sich der spezielle "connect anything" eventIn des Scriptknotens benutzen



und mit dem eventOut eines anderen Knoten verbunden.



Jetzt müssen Sie noch das "url" Feld des Scriptknoten verändern. Neben der Benutzung von urledit können sie auch den Scriptknoten im SceneTree Fenster und das "url" Feld im FieldView Fenster selektieren und dann



das "Object Edit" Icon drücken (oder benutzen den Menüpunkt Aktion -> Objekt editieren).



Nun wird "white_dune" versuchen einen externen Editor zu starten - eingefleischte UNIX Benutzer benutzen "xterm -e vi", das ist der Default unter Linux/UNIX ("xedit" für MacOSX, "edit" für M$Windows) wenn $WINEDITOR nicht beim ersten Programmlauf gesetzt war. Man kann die Editoreinstellung mit dem Options -> Texteditor Settings ... Menüpunkt ändern.
Im Edit Fenster sehen Sie ein Schema des benötigten javascript Codes.
Benutzen Sie Options -> ECMAscript settings um einzustellen, welche erweiterten Kommentare Sie im Schema haben wollen.



Benutzen Sie den Editor, um den Javascript code zu vervollständigen, dann speichern und verlassen Sie den Editor - im Fall des vi Editors benutzen Sie die Tastenkombination :wq

NURBS Modellierung (zum Teil neu in Version 0.25beta)

Superformula Modellierung (neu in Version 0.27beta)