White_dune

White_dune ist ein freier(GPL) Cross-Plattform (Linux, FreeBSD, MacOSX, Microsoft Windows, Rasberry PI) 3D-Modeller und Animationswerkzeug.

Mit white_dune kann man 3D Objekte basteln/ändern und animieren, die man auch über WebGL direkt im Webbrowser laufen lassen oder ins RIB renderman Format (für die Film-Erzeugung) wandeln kann. Man kann das Ergebnis auch in C oder C++ übersetzen, so dass ein "normales" OpenGL-Programm entsteht.

Installation und Konfiguration

Im Dezember 2019 wurde white_dune in Fedora Linux 32 aufgenommen (Installation mit "dnf install wdune wdune-docs").
Für Ubunutu Linux-Distributionen steht ein "snap" Packet zur Verfügung.
In Debian und Ubuntu steht ein white_dune-Packet zur Verfügung, das jedoch völlig veraltet ist.
Auf der Homepage von white_dune stehen Pakete mit Installationsanleitungen für folgende Linux-Distibutionen zur Verfügung:
Die Konfiguration in white_dune erfolgt über Dialoge im Options-Menü, die nach dem Programm-Ende unter Linux in der Textdatei $HOME/.dunerc landet.

Intern benutzt white_dune den ISO-Standart X3D/VRML97 als Speicherformat.

Über Options lässt sich white_dune von der englischen Sprache in die deutsche (oder italienische oder französiche) Sprache umstellen.

Unter Linux kommt white_dune mit 2 Icons:
Mit der 4kids-Version lässt sich zum Beispiel mit etwas Übung in 15 Minuten die Animation des folgenden Screenshots erzeugen.

Es git Tutorials, wie white_dune bei,der 3D Modelling und bei der Animation eingesetzt werden kann.

Geschichte

White_dune startete nicht mit dem Anspruch, ein Werkzeug für 3D Modellierung und Animation zu schaffen, sondern war am Anfang ein Spezialwerkzeug für VRML97 3D-Dateien.
Im Jahr 1999 schuf der Kanadier Stephan F. White die wichtigsten Grundlagen des Programms, gab aber im Jahr 2000 schon wieder auf.
Am 31. Mai 2000 wurde entschieden, das Projekt unter dem Namen "white_dune" weiterzuführen.
Seitdem wurde es massiv ausgebaut.

Modellierung

White_dune hat zur Zeit 8 Haupt-Modelling-Möglichkeiten:

Animation

White_dune hat zur Zeit 2 Animations-M&oouml;glichkeiten:

Filmerzeugung

Steht eine X3D-Datei mit einer Animation zur Verf&umml;gung, kann mit

$ run_dune_and_aqsis.sh datei.x3dv

dune und der freie Renderman Filmrenderer "aqsis" so aufgerufen werden, dass paralell an den Bildern gerechnet wird.

Steht das Programm "mencoder" zur Verfügung (z.B unter Ubuntu oder Debian Linux), wird eine Film-Datei "datei.mp4" erzeugt.

Ansonsten erzeugt "aqsis" viele Einzelbilder, die mit imagemagicks "animate" betrachtet werden k&oml;nnen:

$ animate -alpha off datei*.tiff

Vergleich mit Blender

white_dune und die Grapikleistung eines Systems

white_dune ist ein Echtzeit-3D-Programm.
Die gute Bedienbarkeit hängt von der Graphikkarte und der Anzahl der benutzten Objekte ab. Ist die Graphikkarte überlastet, ruckeln die Objekte bei der Animation und es wird schwierig, ein Objekt zu bearbeiten, zu verschieben oder zu drehen.
Ein (NURBS-)Objekt in white_dune hat ca. 3000 Polygone.

Leider gibt es unter Linux ein Problem mit dem quelloffenenen Treiber fuer NVIDIA Graphikkarten (noveau-Treiber): bestimmte Graphikkarten-Modelle frieren manchmal hart ein. Dann muss man den speziellen Nvidia-Treiber fuer die Graphikkarte installieren.

Die folgende Tabelle zeigt die Grenze, bis zu wieviele Objekte (ohne Morphing) noch halbwegs flüssig dargestellt werden:

GraphikkarteKlasseSystemSystem-TaktNurbsObjekte
PowerVR GX62501ARM Chromebook4x2.0 GHz1
ATI Radeon HD 62902ADM C-60 Netbook2x1.0 GHz1
Intel HD Graphics 30002Intel I5 Laptop4x2.5 GHz11
VideoCore VI2Raspberry PI 44x1.5 GHz10
Nvidia NVS 5200M3Intel I7 Laptop8x2.2 GHz16
Nvidia GT 3203Core2Duo Macbook4x2.4 GHz24
Es gibt noch schnellere Systeme...

Klasse bedeutet:
1:kein 3D-Graphik-Treiber(alles wird mit der CPU berechnet)
2:Integrierte Graphik(Shared Memory Graphik)
3:Dezidierte Graphik(Der Speicher auf der Graphikkarte wird nur von der Graphikkarte benutzt)
Offensichtlich ist eine bessere Graphikkarte für die Graphikleistung wichtiger als die CPU.

Was tun, wenn es ruckelt, weil die Graphikleistung nicht ausreicht ?

white_dune mit der Option "-tessellation" starten
Zum Beispiel "$ dune -tessellation 16 -4kids datei.x3dv"

white_dune für Kinder

White_dune "4kids" wurde bei Kinder-Computer-Trickfilm-Projekten eingesetzt.
Zum Beispiel entstand bei der Stadtranderholung Leonberg 2006/2007 an jeweils einem Nachmiitag ein kleiner Trickfilm einer Alien-Raumschiff-Landung.

Die Kindern waren zwischen 7 Jahre und 13 Jahre alt.

white_dune und meschliche Animation

White_dune unterstützt als X3D Editor alle sichtbaren X3D Befehle einschliesslich "HAnim" (menschliche Animation).


Mit dem "makehuman"-Programm (einer Blender-Weiterentwicklung) lässt sich die Mesh eines Menschen erzeugen. Dabei sollte darauf geachtet werden, dass nur relativ wenige Mesh-Punkte exportiert werden.
Die Zuordnung der einzelnen Meshpunkte auf Körperteile (wie Arm oder Fuss) erfolgt in white_dune, allerdings ist das sehr aufwendig. Im Endergebnis können die einzelnen Gelenke gedreht werden, so dass man eine Animation erstellen kann.

Wie kann ich die Weiterentwicklung von white_dune unterstüzen ?

Die white_dune Menüs stehen in Englisch, Französisch, Italienisch und Deutsch zur Verfügung. Ins Portugisische wurde nur das "4kids"-Menü übersetzt. Die Dialoge sind nur teilweise übersetzt, nur die deutschen und englischen Dialoge und Fehlermeldungen sind vollständig übersetzt.

Für die Übersetzung braucht man keine Programmierkenntnisse, da Micro$oft Resource-Files verwendet werden. Dabei sind die einzelnen Worte/Sätze in "doppelten Gänsefüsschen" eingeschlossen.

Bei Problemen mit white_dune und Ideen zu neuen Features kann sich jeder per E-mail wenden an:
[email protected]

white_dune hat ca. 300 000 Zeilen in C++/C/.h/.m4-Dateien, es ist also ein relativ grosses Programm.

Intern bentzt white_dune ein 2D-GUI-API in der Programmiersprache C namens "libswt" (das heisst wohl "Stephan White Toolkit").
Unter Linux wird motif und OpenGL 2 benutzt.
Das ist etwas altmodisch.
Der grosse Vorteil daran ist, dass in 20 Jahren nur ein Patch wegen einer API-Änderung geschrieben werden muste.
Der Patch hatte mit lesstif zu tun, einem Open-Source-Nachbau von motif. Inzwischen steht auch motif für Linux unter einer Open-Source-Lizenz zur Verfügung, so dass die lesstif-Programmierung eingestellt wurde.

Wenn white_abstürtzt, versucht es noch, die X3D-Daten in eine Datei zu retten.
Das funktioniert nur dann, wenn die interne Datenstruktur noch intakt ist, zum Beispiel bei einem Absturz im Graphik-Code.

white_dune ruft normalerweise unter Linux bei jedem Speichern einen "rcs" (oder seit Neuestem "git") revision-contol-system-Befehl auf. Damit lassen sich im Nachhinein alle Änderungen an einer X3D-Datei nachvollziehen und eine bestimmte Version aus dem repository restaurieren.
Das ist ein sehr wichtiges Feature beim Arbeiten mit Kindern...