Übungen mit Cosmoworlds

http://www/vrml/vrml_rapid/vrml_cosmoworlds.html

Cosmoworlds ist ein Authoring Tool für VRML ISO/IEC 14772

Inhalt:

Einführung in Cosmoworlds

Starten Sie "cosmoworlds". Es erscheinen zwei Leisten mit Werkzeugen und ein grosses Fenster. Wenn Sie mit der Maus über die Leisten mit den Werkzeugen fahren, erkennen Sie in der linken oberen Ecke des grossen Fensters eine kurze Beschreibung dieses Werkzeugs.
Sie benötigen jetzt ein statisches VRML2 3D Modell.
Falls Sie keines haben, können Sie sich ein freies VRML-Modell im Netz z.B. von http://www.3dcafe.com/asp/vrml.asp besorgen. Einige diese Modelle liegen im VRML 1 Format vor. Sie müssen mit dem Befehl

 /usr/sbin/vrml1tovrml2 inputfile.wrl outputfile.wrl

nach VRML gewandelt werden (falls Ihre Cosmoworlds Installation beim Einlesen versagt).

Laden Sie über File -> Open Ihr statisches VRML-Modell.

Um ein Werkzeug verwenden zu können, muss ein (Teil-)Körper selektiert sein.
Dazu muss das Navigationswerkzeug auf der rechten Seite des Hauptfensters aktiv sein. Klicken Sie dann auf diesen Körper um zu selektieren. Der Körper wird dann durch einen Wireframe eingeschlossen.

Falls der Körper aus mehreren Bestandteilen besteht (das sieht man, wenn man auf das Scenengraph-Icon klickt und sich durch den Szenengraph klickt), kann man einen Teil der Gruppe selektieren. Klicken Sie auf den "child" button rechts oben im grossen Fenster.

Um eine Gruppe aufzulösen, benutzen Sie Edit -> Ungroup.

Um mehrere Körper gleichzeitig zu selektieren (zum Beispiel um eine Gruppe zu bilden Edit -> Group), drücken Sie die Shift-Taste, während Sie diesen Körper anklicken.

Ist ein Körper selektiert, so sehen Sie ihn von 8 weissen Kästchen eingeschlossen. Sie können den Körper verschieben, indem Sie die durch die weissen Kästchen aufgespannten Flächen anklicken/verschieben. Durch anklicken/verschieben der Kästchen können Sie die Grösse Ihres Körpers verändern. Um den Körper zu verzerren, müssen Sie noch gleichzeitig die Shifttaste drücken.
Die aus dem Körper herausstehenden grünen Kugeln representieren Drehungen.
Mit Klicken/Verschieben der grünen Kugeln kann ein Körper gedreht werden.
Wenn Sie die "Ctrl"-Taste gedrückt halten und dann eine der grünen Kugeln Klicken/Verschieben können Sie die Position der Drehachse verschieben.
Um die Kameraposition zu verändern, können Sie die Rädchen Rotx, Roty und Dolly am unter Rand des Hauptfensters benutzen.
Sie können dazu auch das Navigationswerkzeug auf der rechten Seite des Hauptfensters benutzen.
Die folgenden Maustasten sind dabei aktiv:

Das Navigationswerkzeug auf der rechten Seite des Hauptfensters erlaubt eine besonders effektive Bewegung der Kameraposition.
Wenn es aktiv ist, brauchen Sie nur einfach auf einen Teil eines Körpers zu klicken, um an diese Stelle heranzuzoomen.

Bitte beachten Sie, dass Sie mit Edit -> undo alle bisher gemachten Änderungen rückgängig machen können.



Ein kleiner Überblick über die wichtigsten Werkzeuge (im Rahmen der zeitlich begrenzten Übungsveranstaltung ist es nicht sinnvoll, alle Werkzeuge an dieser Stelle schon auszuprobieren...):

Modularisierung: Inlines

Cosmoworlds unterstützt den Inline-Knoten, so dass eine VRML Welt aus mehreren VRML Files aufgebaut sein kann. Dadurch werfen VRML Welten möglich, deren einzelne Files aus vielen verschiedenen spezialisierten Werkzeugen stammen. Um ein VRML File als Inline einzufügen, benutzen Sie File -> Import as Inline... aus der Menuebar.
Besonders nützlich ist die Fähigkeit von Cosmoworlds, nicht nur existierende VRML File als Inline einzufügen zu können, sondern Teile eines VRML Files als neue VRML File rausdrücken zu können, so dass dieser Teil in einem Programm das VRML lesen kann (z.B. white_dune) weiterbearbeitet werden kann.


Selektieren Sie ein Objekt und drücken Sie auf "Open Inline Editor"
Es öffnet sich ein Dialog,

bei dem Sie auf "Convert Master Selection to Inline File...." klicken.
Es öffnet sich ein Filedialog, in dem sie einen Filenamen für ihr neues Inlinefile angeben müssen (sinnvollerweise klicken Sie hier nicht auf ihr Ursprungsfile !)

Wenn Sie jetzt "Allow Editing of Inline" anklicken,

können Sie die Datei weiter bearbeiten, es empfiehlt sich allerdings nicht, Objekte aus der Inline Datei in eine Animation aufzunehmen.

Später lässt sich die Inlinedatei wieder vollständig in das VRML File einbetten.
Ein interessanter Nebeneffekt beim Arbeiten mit Inlines in Cosmoworlds ist, dass dabei die Grösse und Position des den Körper umschliessenden Würfels (Bounding Box) erzeugt wird. Diese Information lässt sich später benutzen, wenn man eine (einfache aber ungenaue) Objekt - Objekt Kollision programmieren will.

Umgang mit der Kameraposition

Im Normalfall ist Cosmoworlds so eingestellt, dass bei Navigation mit den Navigationswerkzeugen im Hauptfenster (z.B. "Rotx", "Roty", "Dolly") keine Veränderung an der Kameraposition vorgenommen wird. Das ist praktisch, wenn Cosmoworlds nur zur Nachbearbeitung einer fertigen VRML-Welt benutzt wird, so dass man ohne Auswirkungen in der Welt navigieren kann. Allerdings kommt es auch häufig vor, dass man die VRML-Welt aus der Kameraposition betrachten will, die man in Cosmoworlds gerade sieht. Dazu benötigt man den Viewpoint Editor.


Drücken Sie auf "Open Viewpoint Editor"

Es erscheint ein Fenster, mit dessen Hilfe man verschiedene Viewpoints erzeugen kann. Dabei liegt das aktuelle Aussehen im Hauptfenster zugrunde.

Findet man durch Navigation im Hauptfenster eine bessere Kameraposition, kann man einen Viewpoint durch Drücken von "Update" verändern.

Will man z.B. nach der Betrachtung eines Details zu einer vorher definierten Kameraposition zurückkehren, drückt man "Jump To".

Die einfachste Arbeitsweise ist die Aktivierung von "Lock to camera".
Dabei wird die Kameraposition dauernd mit der Navigation mitgeführt. Dieser Modus ist auch sinnvoll für eine animierte Kamerafahrt.


Aussehen verbessern mit Cosmoworlds

Probieren Sie ein paar der wichtigsten Werkzeuge aus, um Ihre 3D-Welt zu verschönern (z.B. in looks). Leider haben manche SGI-Maschinen, mit denen Sie arbeiten, nur 8-Bit Graphik. Für eine Farbauswahl wäre es sinnvoll, wenn Sie eine Maschine benutzen, die 24-Bit Graphik besitzt.

Selektieren Sie einen Körper.


Drücken Sie z.B. auf "Open Material Palette". Sie bekommen eine Sammlung von Farbeffekten.

Mit der Auswahl unter "Palettes" können Sie zwischen verschiedenen Farbeffekten auswählen. Mit File -> New Palette können Sie eine neue Palette anlegen. Ein Doppelklick auf einzelne Farbkugeln öffnet ein Fenster in dem man verschiedene Farben/Leuchttypen einstellen kann.


Drücken Sie z.B. auf "Open Color-Per_Vertex Tool".

Mit diesem Werkzeug kann man einzelne Flächen bemalen.
Links sehen Sie zwei Icons

Das erste Icon wird benutzt zur Aufnahme einer Farbe von einem Körper. Wird das zweite Icon gedrückt, wird der Körper bemalt.
Die recht Werkzeugreihe steuert die Art und Weise der Bemaltung. Man kann zum Beispiel das Werkzeug

auswählen, das ausgehend von Eckpunkten weiche Farbübergänge erzeugt.


Drücken Sie z.B. auf "Open Polygon Copying Editor".

Mit diesem Werkzeug kann man bequem einzelne Polygone von aus Einzelflächen aufgebauter Körper kopieren bzw. löschen. Beliebt ist die Arbeitsweise Edit -> Duplicate Source to Destination und Anklicken von Copy Triangles und Delete Triangles. Versehentlich zuviel gelöschte Polygone lassen sich dann leicht durch Anklicken im anderen Teilfenster wiederherstellen.


Drücken Sie z.B. auf "Open Polygon Reducer".

Mit diesem Werkzeug kann man durch Verschieben der Regler eine Optimierung von Polygonflächen durchführen. Manche 3D Modeller (besonders wenn Sie für rechenzeitaufwendige Animationsverfahren beschrieben sind) neigen dazu, viel zu viele kleine Polygone zu benutzen. Die verschieden Regler representieren verschiedene Optimierungsverfahren. Die Reduktion sehr vieler Polygone ist leider recht aufwendig...

Wenn Sie das ausprobieren wollen, finden Sie unter http://www.3dcafe.com/asp/meshes.asp auch derartig umfangreiche freie 3D Modelle in anderen 3D Formaten. Dummerweise wird z.B. in der Auswahl http://www.3dcafe.com/asp/arch_pic.asp nicht angegeben, welches 3D-Format verwendet wird. Die Dateien sind meist in einem Zip-Format verpackt, so dass man sie erst mit "unzip -x sowieso.zip" auspacken kann. Erst danach kann man versuchen, die Dateien mit dem Programm "ac3d" (File -> import/File -> export) zu wandeln (unterstützt wird z.B. 3D Studio Max: "3ds". 3D Modelle mit vielen Polygonen benötigen aber sehr lange für das Einlesen - nein, "ac3d" ist dann nicht abgestützt, obwohl es sehr lange nicht mehr reagiert...


Drücken Sie z.B. auf "Open PEP Normal Doctor".

Mit diesem Werkzeug kann man Kanten glatt erscheinen lassen (Faceted <-> Smooth) und die Oberflächenansicht einseitiger Oberflächen umdrehen (Flip Poly Ordering). Dieses "in Oberflächen hineinsehen" ist ein beliebter Fehler von 3D Modellern beim Export nach VRML....


Drücken Sie z.B. auf "Open Texture Editor".


Ausser den vorgegebenen Texturen können Sie natürlich auch eigene Texturen in dieses Werkzeug bringen: File -> New Palette, dann klicken Sie in ein leeres Feld in dem Fenster, das mit "No Texture" untertitelt ist. Mit File -> Import Image laden Sie dann eigene Bitmapgraphiken (der VRML-Standart unterstützt die Formate "png" und "jpg/jfif") als Texturen zu. Mit den Reglern lässt sich jetzt Wiederholungsverhalten, Verschiebung, Rotation und Grösse der Textur anpassen.

Für aus Einzelflächen zusammengesetzten Körpern kommt es häufiger vor, dass die Texture nur schlecht auf den Köper passt. In dem Fall kann man über "Open PEP Texture Applicator"

die Texturkoordinaten verändern, oder über den Menuepunkt Mappings eine neue Zuordnung zwischen Eckpunkten und Textur erstellen.

Animation mit Cosmoworlds

Erstellen Sie jetzt eine Animation mit cosmoplayer. Selektieren Sie das Object, das Sie animieren wollen.

Klicken Sie auf das Werkzeug für Animation. Klicken Sie auf Animation -> New Animation danach auf Animation -> Add member um das selectierte Object auszuwählen.
(Für eine Kamerafahrt über die Navigationswerkzeuge Rotx/Roty/Dolly benutzen Sie stattdessen den "Viewpoint Editor" und danach den Animation -> Add current viewpoint )
Es erscheint:

Als nächstes müssen Sie die Position Ihres Körpers verändern, damit der erste Zeitschritt aufgenommen werden kann. Da Ihr Körper normalerweise schon die Startpositon hat, ist es sinnvoll, die Position nur um einen sehr kleinen Betrag zu ändern.

Drücken Sie dazu das Icon für "Open Precision Placement Editor" bei den Layout-Werkzeugen.


Es erscheint das Fenster

mit dessen Hilfe Sie Ihren Körper z.B. mit Center, Move an den Ursprung verschieben können.
Dieses Werkzeug wird auch benötigt, wenn Sie eine Bewegung interaktiv eingeben wollen, deren Bewegungsparameter schon vorher berechnet wurden.
Ändern Sie die Werte nur um einen Bruchteil hinter dem Komma für eine minimale Verschiebung.

Darauf verändert sich das Animationsfenster zu

Drücken Sie die rote Raute mit der Beschriftung "master" um diese Position abzuspeichern.
Verschieben Sie das rote Dreieckchen in der Zeitachse

Verschieben, Drehen, Verzerren oder Ändern Sie die Farbe Ihres Körpers.
Drücken Sie wieder die rote Raute mit der Beschriftung "master" um diese Position abzuspeichern.

Benutzen Sie jetzt ein Verfahren, das "Morphing" genannt wird.
Selectieren Sie einen Teil ihres Körpers.

Falls dieser Teil ein "primitiver" Körper ist (das zweite PEP-Werkzeug ist dann nicht direkt benutzbar und grau unterlegt), drücken Sie das erste PEP-Werkzeug.
Drücken Sie dann das zweite PEP-Werkzeug und selektieren Sie mit den Aufziehen eines Teilfensters einige Teilflächen.


Verschieben Sie wieder das rote Dreieckchen der Zeitachse im Animationsfenster.

Ziehen Sie die selektierten Teilflächen in die gewünschte Richtung.

Drücken Sie wieder die rote Route.
usw.

Am Schluss ihrer Animation drücken Sie das blaue Dreieckchen, um wie bei einem Videorekorder ihre Animation abzuspielen.

Interaktion mit Cosmoworlds

Ausser dem Touchsensor und Proximitysensor, die im Animationstrigger (im Animationsfenster)

eingebaut sind (um Animationen interaktiv auslösen zu können), gibt es keine Schaltfläche in Cosmoworlds 1.03, die viel mit Interaktion zu tun hat.
Trotzdem ist es mit Cosmoworlds möglich, mit Interaktion umzugehen.

Dabei geht man ähnlich wie beim Programm "dune" über den Scenengraph ("Outline Editor") vor und benutzt ausserdem noch File -> Import .
Eine Beschreibung des genauen Vorgehens findet sich in der Datei /usr/share/data/vrml/howToCreateDragSensors

Abspeichern in Cosmoworlds/Wandeln in VRML

Cosmoworlds speichert nur "fast" VRML97. Zum Beispiel müssen Ergebnisse mit Animationen in einem weiteren Schritt in VRML umgewandelt werden. Dafür stehen mehrere Skripte zur Verfügung:

Laden abgespeicherter Cosmoworlds Welten

Ein erneutes Laden einer im cosmoworlds-Format abgespeicherten Datei öffnet nicht automatisch die bisher bearbeitete Animation.
Fatal wäre es, hier von einem Programmfehler auszugehen und mit Animation -> New Animation eine neue, zusätzliche Animation im gleichen File zu erstellen. Dann würden die Objekte je nach Animationsauslöser von mehrere Animationen gleichzeitig bewegt/verändert, was zu sehr verwirrenden Effekten führen kann. Animationseffekte, die aufeinander aufbauen, lassen sich später nur noch sehr schwer trennen.
Benutzen Sie stattdessen das Laden bestehender Animationen mit Animation -> Open Animation. Wenn Sie die Objekte einer Datei für eine andere Animation recyclen wollen, ist es meist sinnvoll, die Datei zu kopieren und die alte Animation zu löschen (Animation -> Delete current Animation)

Hall of Fame bisheriger Kurse Sonstige Cosmoworlds