http://www/vrml/vrml_rapid/vrml_cosmoworlds.html
Cosmoworlds ist ein Authoring Tool für VRML ISO/IEC 14772
Inhalt:
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:
auf der rechten Seite des Hauptfensters
erlaubt eine besonders effektive Bewegung der Kameraposition.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...):
Der Outline-Editor wird auch benutzt, um zusätzliche
Routes einzutragen.
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.




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.
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.
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.

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








Am Schluss ihrer Animation drücken Sie das blaue Dreieckchen, um wie bei einem Videorekorder ihre Animation abzuspielen.
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
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:
Nach der Unixphilosphie beruhen diese Skripte auf dem mitgelieferten
Kommandozeilenwerkzeug worldsToVrml.
Wenn Sie es benutzen wollen, speichern Sie das Ergebnis (z.B. als
cosmoworlds_out.wrl) und tippen Sie zum Beispiel
/usr/sbin/worldsToVrml cosmoworlds_out.wrl vrml_out.wrlin eine Kommandozeile.
/usr/freeware/bin/fm_cosmo2vrml97 mit, mit dem man
ein cosmoworld File "auf die Schnelle" in ein VRML File wandeln kann,
um das File in white_dune öffnen zu können.
cosmopackage.
Dabei können auch Multimediadaten (Bilder, Movies, Sound)
in die vom VRML97-Standard offiziell unterstützten Format konvertiert
werden. Rufen Sie dazu mit File -> Package Cosmopackage auf.
Wählen Sie auf Anforderung ein Zieldirectory. Danach benutzen Sie
den Reiter "Vrml 2.0", um die Einstellungen für die Multimediadaten
vorzunehmen.
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)