Superscape - 3D Webmaster

 
 
 
 
 
 

Ein Tool zur Erstellung von

3D Web-Pages

 
 
 
 
 
 
 
Seminararbeit von Jens Tietjen
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Lehrstuhl für Praktische Informatik IV, Professor Dr. W. Effelsberg
Betreuer: Martin Mauve
 
 
 
 
 
 

Inhalt

1. Einleitung

2. 3D Web-Formate

3. Struktur einer virtuellen Welt

4. 3D Webmaster

  4.1 World Editor

  4.2 Shape Editor

  4.3 Image Editor

  4.4 Sound Editor

5. Superscape Control Language

6. Integration in HTML

7.Zusammenfassung

8. Literatur

 

 

 

1.Einleitung

Die Erstellung von 3D Web Seiten gewinnt mit der steigenden Akzeptanz von interaktiven 3D Applikationen im Internet mehr und mehr an Bedeutung. Als Applikationen sind unter anderem Unterhaltung, Wohnraumplanung, Visualisierung von Daten, Präsentationen von Produkten etc. denkbar. Im Internet existieren zur Zeit ca. 1000 respektable 3D Web Seiten. In der Regel sind diese Seiten unterteilt in einen 2D-Bereich und einen 3D-Bereich. Im 2D-Bereich befindet sich z.B. normaler Text und im 3D-Bereich die eigentliche Applikation.

Superscape hat zum Erstellen von 3D Web Seiten verschiedene Entwicklungs-Tools entwickelt. Eines davon ist der 3D Webmaster, welchen man als semi-professionelles Tool bezeichnen kann. Dieses Tool wird in dieser Arbeit vorgestellt. Für professionelle Entwickler wird von Superscape das Tool VRT 5.60 empfohlen, welches gegenüber 3D Webmaster noch einige zusätzliche Features besitzt. Alle Entwicklungs-Tools von Superscape unterstützen ein von Superscape entwickeltes 3D Format namens VRT bzw. SVR. Bei SVR handelt es sich um ein komprimiertes VRT Format. Bei VRT 5.60 hat man die Möglichkeit, zu wählen, in welchem Format eine selbst entwickelte 3D Welt abgespeichert werden soll. Soll eine Welt über Internet zugänglich gemacht werden, so empfiehlt es sich hier, das komprimierte Format zu wählen, um lange Ladezeiten zu vermeiden. 3D Webmaster speichert grundsätzlich im SVR Format ab.

Um sich 3D Web Seiten im Superscape Format ansehen zu können, benötigt man einen entsprechenden Browser. Superscape entwickelte dafür einen eigenen Browser - genannt VISCAPE - als Plugin für Netscape Navigator und Microsoft Internet Explorer. Dieser ist - wie auch 3D Webmaste Evaluation Version -  im Internet unter www.superscape.com als Download erhältlich. Unter VISCAPE kann man sich mit Hilfe der Move Bar frei in 3D Welten bewegen. Man kann nach oben und unten schauen bzw. sich selbst - also seinen Viewpoint (siehe weiter unten) - hoch und runter bewegen. Wenn man sich einmal verirrt haben sollte, so kann man sich mit dem Reset-Button wieder in seine Ausgangsposition versetzen. dabei wird auch die ganze Welt in ihren Initialzustand zurückversetzt.

2. 3D Web-Formate

Der Grossteil aller 3D Web Seiten teilt sich auf in in die beiden gängigsten Formate, VRML und SVR. VRML ist ein Format, das in der Öffenlichkeit diskutiert und weiterentwickelt wird. Demgegenüber steht das von Superscape entwickelte SVR, welches nicht öffentlich diskutiert wird. Genauere Informationen über dieses Format zu erhalten, war deshalb leider nicht möglich.

Desweiteren existieren zwei neuere 3D Formate, Java 3D und Microsoft Chrome. Alle diese 3D Formate haben ihre Vor- und Nachteile. Die weitere Entwicklung von interaktiven 3D Web Formaten ist bei weitem nicht klar. Performence, Zuverlässigkeit, Standards und applikationsspezifische Eignung spielen eine wichtige Rolle bei der Weiterentwicklung dieser Formate.

Mit mehr als 11 Jahren Erfahrung in Echtzeit 3D Software bemüht sich Superscape darum, die beiden verbreitesten Formate - VRML und SVR - zu unterstützen. Superscapes 3D Browser Viscape unterstützt sowohl VRML als auch SVR. Viscape ist damit der erste Browser, der dies kann. Allerdings lässt dessen Performance bei VRML Welten viele Wünsche offen. Es besteht die Möglichkeit, bei der Arbeit mit Superscape Entwicklungs-Tools 3D Welten im VRML Format zu ex- und importieren. Allerdings gehen dabei bestimmte Informationen, wie z.B. bestimmte Objekteigenschaften, wegen der Unterschiede zwischen beiden Formate verloren.

In Zukunft wird Superscape auch die neueren Formate, wie Java 3D und Microsoft Chrome, unterstützen, um dem Kunden bei der Auswahl des geeigneten Formats freie Hand zu lassen.

3. Struktur einer virtuellen Welt

3D Webmaster ermöglicht es dem Anwender, seine eigene interaktive 3D Umgebung (virtuelle Welt) zu entwickeln. Woraus besteht nun eine solche virtuelle Welt? Eine virtuelle Welt besteht zum einen aus Punkten, Facets, Shapes, Objekten und Gruppen und zum anderen aus deren Eigenschaften. Hier sollen nun einige Grundbegriffe erklärt werden.

3D Webmaster verwendet ein 3 dimensionales orthogonales Koordinatensystem. Das heisst, die Position jedes Objekts etc. wird mit einem Tripel (x,y,z) angegeben. X definiert die horizontale Position eines Objekts mit dem Ursprung links, Y die vertikale Position mit dem Ursprung unten und Z die Position in die Welt hinein mit dem Ursprung vorne.

Ein Punkt ist eine Position in der 3D Welt, dei durch das Koordinatensystem definiert wird. Shapes und Objekte werden durch mindestens zwei oder mehr Punkte definiert. Jeder Punkt hat eine x, y, und z-Koordinate.

Facets sind die sichtbaren Teile eines Objekts. Ein Facet wird durch zwei oder mehrere zusammenhängende Punkte definiert. Facets sind flach, d.h. zweidimensional, und nur zu einer Seite hin sichtbar.

Als Objekt bezeichnet man alles in einer virtuellen Welt, was Platz beansprucht und Attribute wie Farbe, Texturen, Sound und Eigenschaften besitzt. Im World Editor erstellt man seine virtuelle Welt, indem man Objekte in diese einfügt. Diese Objekte können entweder schon vorgefertigt und als Clipart im Warehouse abgespeichert sein oder man erstellt eigene Objekte mit dem Shape Editor. Diese Objekte nennt man dann Shapes. Ein Objekt kann auch eine Gruppe sein.

Shapes werden im Shape Editor erzeugt. Im Shape Editor kann man Punkte und Facets definieren. Diese sind die elementaren Komponenten eines Shapes.

Gruppen sind eine spezielle Form eines Shapes. Sie enthalten selbst wieder mehrere individuelle Shapes. Ein Stuhl Objekt enthält z.B. vier Beine, einen Sitz und eine Lehne. Gruppen werden benutzt um komplexere Shapes aus mehreren einfachen Shapes zusammenzusetzen.

3D Webmaster ermöglicht es, jedem Objekt einfache oder komplexe Eigenschaften zuzuweisen. Einfache Eigenschaften so wie z.B. Bewegung kann man erzeugen, wenn man einem Objekt Angular Velocity oder Dynamics zuweist. Um Objekte rotieren zu lassen, gibt man ihnen ein Angular Velocity Attribut. Dabei wird angegeben, um welche Achse und um wieviel Grad pro Frame gedreht werden soll. Mit einem Dynamics Attribut kann man Objekte sich in eine bestimmte Richtung bewegen lassen, Gravitation auf sie wirken lassen etc..
Um komplexe Eigenschaften für ein Objekt zu erzeugen, verwendet man eine von Superscape entwickelte Sprache namens Superscape Control Language (SCL).

Bei 3D Webmaster ist es möglich, von einem komplexen Shape mehrere Shapes in verschiedenen Detailstufen zu erstellen. Dies ermöglicht, dass Objekte, die sich in weiter Entfernung vom Betrachter befinden, durch eine weniger detaillierte Version dieses Shapes ersetzt werden können. Das hat den Vorteil, dass man somit unnötige Rechenzeit spart, da unser Auge auf die Entfernung immer weniger Details erkennen kann und es daher nichts ausmacht , ob das betreffende Objekt in allen Details berechnet oder durch eine weniger detaillierte Version ersetzt wird. Man erzeugt also eine einfachere Version des Originalobjekts und gibt dann eine Entfernung relativ zum Betrachter an, bei der das Original durch die weniger detaillierte Version ersetzt werden soll. Diesen Prozess kann man mehrmals wiederholen, so dass man, wenn nötig, mehrere Versionen  eines Shapes erhält.

Ein weiterer wichtiger Begriff ist der des Viewpoints. Man spaziert nämlich nicht selbst durch eine virtuelle Welt. Eigentlich bewegt man nur seinen Viewpoint. In 3D Webmaster ist es möglich verschiedene Viewpoints zu definieren. Es gibt z.B. Viewpoints, mit denen man frei in der Welt navigieren kann, welche, die nur eine Rotation um die eigene Achse erlauben oder welche, die als Verfolgungskamera ein bestimmtes Objekt, das sich in der Welt bewegt (z.B. Auto), von hinten verfolgen. Innerhalb von Viscape kann man dann auswählen, von welchem Viewpoint man seine Welt betrachten will.

Eine wichtige Frage ist noch der Bildaufbau im Browser. Sorting bezeichnet hier die Reihenfolge in der die Objekte bei jedem Frame auf dem Bildschirm gezeichnet werden. 3D Webmaster bzw. Viscape berechnet den aktuellen Standort der Objekte in der Welt relativ zum aktuellen Viewpoint und zeichnet dann die Objekte beginnend mit denen, die am weitesten entfernt sind. Somit ist sichergestellt, dass kein Objekt ein anderes Objekt überdeckt, das sich zwischen ihm und dem aktuellen Viewpoint befindet.
 

4. 3D Webmaster

3D Webmaster ist, wie oben schon erwähnt, ein Tool zur Erstellung von virtuellen Welten bzw. von 3D Web Seiten. Dieses Tool besteht aus fünf Komponenten: Mit den verschiedenen Editoren kann man eigene virtuellen Welten erstellen bzw. bearbeiten. Mit Viscape kann man sich den Fortschritt seiner Arbeit dann direkt ansehen, ohne dafür erst einen Browser starten zu müssen. In diesem Abschnitt sollen nun die vier Editoren kurz vorgestellt werden.

4.1 World Editor

Beim Start von 3D Webmaster landet man automatisch im World Editor. Der World Editor ist das zentrale Element von 3D Webmaster. Hier konstruiert man seine virtuellen Welten. Diese Welten bestehen aus Gruppen von Objekten.Objekte werden aus vorher kreierten Shapes erzeugt. Eine Gruppe von Objekten wird durch eine Box umschlossen. Diese Box muss mindestens so gross sein, dass die komplette Gruppe hineinpasst. Sie kann aber auch grösser sein. Auch einfache Objekte, die nur aus einem einzigen Shape bestehen, werden durch solch eine Box eingerahmt. Solch eine Box hat mehrere verschiedene Schaltflächen, mit denen man das enthaltene Objekt bzw. die enthaltene Gruppe von Objekten in ihrer Grösse und Position verändern kann. Die aktuelle Position und Ausdehnung in x, y und z Richtung werden am unteren Rand des World Editors in der Statusleiste angezeigt. Weiterhin ist es möglich ein Objekt bzw. eine Gruppe von Objekten um die x, y und z Achsen zu drehen. Die Box dient auch dazu, um Kollisionen mit anderen Objekten anzuzeigen bzw. zu verhindern. Die folgende Abbildung (Abb. 1) zeigt einen Stuhl als Gruppe von Objekten mit seiner Box. Am unteren Bildrand in der Statusleiste sind der Name der Gruppe, die Position, die Ausdehnung der Box in x, y und z Richtung und die mit der Gruppe verbundenen Attribute zu sehen.

  Abb.1: World Editor mit geöffnetem Warehouse

Abb. 1 zeigt weiterhin noch das Drag 'n' Drop Warehouse, in welchem vorgefertigte Shapes, Texturen und Geräusche gespeichert sind. Diese drei Kategorien sind selbst noch einmal in Unterkategorien aufgeteilt, wie z.B. Möbel, Strassen etc.. Einen vorgefertigten Shape kann man nun einfach im Warehouse anklicken und irgendwo in seine Welt ziehen. Lässt man die Maustaste los, so ist das Objekt platziert. Steht das neue Objekt jetzt nicht an der richtigen Position oder stimmt seine Grösse nicht, so kann man dies wie oben erläutert per Hand ändern, was zu einer nervenden Fummelei ausarten kann. Eine Alternative dazu bietet die exakte Positionierung über Menüs. Abb. 2 zeigt ein solches Menü.

Abb. 2: Menü Standard Attributes

Im Menü Standard Attributes kann nun die exakte Position und Grösse des Objekts bzw. der Gruppe angegeben werden. Die folgende Abbildung 3 zeigt das Position and Size Menü. Hier kann ein Objekt in einer bestimmten Schrittweite verändert werden. Man kann zum Beispiel ein Objekt um exakt 1000 Einheiten in eine Richtung bewegen oder um 10 Einheiten in eine Richtung ausdehnen bzw. verkleinern. Was für einfache Objekte gilt, gilt auch für Gruppen von Objekten. Ich werde daher im weiteren Verlauf nur noch von Objekten sprechen.


 

Abb. 3: Position and Size Menü

Man kann auch selbst mehrere Objekte zu einer Gruppe zusammenfassen. In Abb. 4 wurde der Stuhl aus dem obigen Beispiel dupliziert und aus der Vogelperspektive neben den ersten Stuhl platziert. Wählt man nun unter Menüpunkt Object den Befehl create, so kann man nun angeben, dass man eine neue Gruppe erzeugen will. Es erscheint nun ein blaues Quadrat, das die Box für die neue Gruppe darstellt, welches man nun so vergrössern und verschieben muss, dass es beide Stühle umfasst.


 

Abb. 4: Gruppierung von Objekten 1

Hat man dies erledigt, kehrt man wieder zur 3D Darstellung zurück. Dies ist in Abb. 5 dargestellt. Manchmal kommt es vor, dass die Box nicht hoch genug ist. Also zieht man diese in die Höhe, bis sie die komplette Gruppe umfasst. Nun braucht man nur noch per Pop Up Menü angeben, dass alle umschlossenen Objekte zu einer neuen Gruppe zusammengefasst werden sollen. Wenn man will, kann man auch noch die Box genau an die Grösse der enthaltenen Objekte anpassen. In Abb.5 ist diese Box noch etwas zu gross. Dies geschieht automatisch mit der Funktion Object>Grouping>Group around all children.


 

Abb. 5: Gruppierung von Objekten 2
Weiterhin bietet der World Editor noch die Möglichkeit, Objekte mit Texturen und Geräuschen zu versehen. Die Vorgehensweise ist hier ähnlich, wie beim Platzieren eines neuen Objektes aus dem Warehouse. Man klickt im Warehouse in der entsprechenden Kategorie ein Texturen- bzw. Geräuschsymbol an und zieht dieses auf das gewünschte Objekt. Das Geräusch kann dann z.B. durch Anklicken des Objektes mit der Maus erzeugt werden. Die Farbe der Facets eines Objekts kann auch im World Editor verändert werden. Das Fenster, in dem diese Einstellungen vorgenommen werden können, zeigt Abb. 6.

Abb. 6: Current Colors
Der linke Teil des Fensters zeigt hier sechs Facets eines Würfels mit ihrer Farbe. Im rechten Teil kann man durch Anklicken für jedes Facet eine Farbe auswählen. Das Objekt erhält, wenn man es mit einer Farbe ausstattet ein Color-Attribut.
Von den vielen weiteren Möglichkeiten, die der World Editor bietet, will ich jetzt nur noch zwei davon vorstellen. Ein Objekt
kann hier z.B. animiert werden. Beispielsweise kann es mit dem Attribut Angular Velocity versehen werden. Die Werte dafür werden im Fenster in Abb. 7 eingegeben. Hier rotiert das Objekt 5 Grad pro Frame im Uhrzeigersinn um die y-Achse.
Abb. 7: Angular Velocity

Es ist auch möglich über ein Menü einen bzw mehrere Viewpoints zu setzen. Man bewegt dazu den aktuellen Viewoint an die gewünschte Position, klickt das Menü Viewpoints an und gibt die entsprechenden Optionen an. Abb. 8 zeigt hier den Standardviewpoint. Wie oben schon erwähnt gibt es mehrere verschiedene Arten von Viewpoints (Verfolgungskameras etc). Eine Auflistung davon zeigt Abb. 9.


 

Abb. 8: Standardviewpoint
Abb. 9: Verschiedene Arten von Viewpoints

4.2 Shape Editor

Die Konstruktion von Shapes erfolgt im Shape Editor. Shapes können zwei- oder dreidimensional sein. Ein Shape kann aus einem Facet oder auch aus hunderten bestehen. Beim ersten Aufruf des Shape Editors erscheint automatisch der Shape eines Cubes. Wählt man nun Shape>create aus der Menüleiste, so erhälz man folgendes Bild (Abb. 10).


 Abb. 10: Shape Editor

Zu sehen ist hier das Koordinatensystem mit seinen drei Achsen. Weiterhin kann man acht Punkte und zwölf Kanten erkennen. Diese bilden den sogenannten Bounding Cube, den ich weiter oben noch als Box bezeichnet habe. Jedes Objekt besitzt einen solchen Bounding Cube. Jeder Versuch einen dieser acht Punkte zu löschen wird fehlschlagen. Ein Shape darf die Grenzen dieses Cubes nicht überschreiten. Er muss sich also immer innerhalb des Cubes befinden. Der Bounding Cube definiert den Platz, den ein Objekt dieses Shapes in der virtuellen Welt einnimmt. Sollte ein Shape kleiner sein als der Cube, so kann man mit dem Befehl Shape>WrapBoundingCube den Cube der Grösse des Shapes anpassen.

Bei der Erstellung eines Shapes muss man nun zunächst dessen Punkte definieren. Punkte sin von sich aus statisch. Um allerdings animierte Shapes erzeugen zu können, kann man sie in dynamische Punkte umwandeln. Es gibt zwei Arten von Punkten: relative Punkte und geometrische Punkte. Relative Punkte werden einfach durch Angabe ihrer x, y und z Koordinaten erzeugt (siehe Abb. 11). Es können dabei Werte von 0 bis 10000 eingegeben werden. Der Punkt aus Abb. 11 liegt hier genau in der Mitte des Bounding Cubes.


 Abb. 11: Relative Point Position

Geometrische Punkte werden dadurch erzeugt, dass man zwei vorhandene Punkte durch Anklicken auswählt und aus der Menüleiste Points>createGeometric auswählt. Als Ergebnis erhält man einen neuen Punkt, der sich genau in der Mitte der blauen Konstruktionslinie befindet (siehe Abb. 12).


 Abb. 12: Geometrischer Punkt erzeugt

Geometrische Punkte müssen nicht immer genau in der Mitte zwischen zwei anderen Punkten liegen. Man kann sie auch in bestimmten Intervallen verschieben. Abb. 13 zeigt das Fenster in dem man die Einstellungen für einen ausgewählten geometrischen Punkt vornehmen kann. Der Punkt befindet sich hier zwischen den Punkten 6 und 2 (Punkte werden im Shape Editor durchnummeriert.). Die neue Position des geometrischen Punktes liegt hier im Beispiel genau bei einem achtel der Entfernung von Punkt 6 zu Punkt 2 auf der Konstruktionslinie. Der Vorteil von geometrischen Punkten gegenüber relativen liegt in der Rechenzeit, die ein Punkt beansprucht. Diese ist bei geometrischen Punkten kleiner als bei relativen. Warum dies so ist wurde leider in der Literatur nicht erwähnt.


 

Abb.13: Geometric Point Position

Facets erzeugt man einfach durch Anklicken der dazugehörigen Punkte und dem Befehl Facets>create. Ein Beispiel dafür zeigt Abb. 14.


 

Abb. 14 Ein Facet wurde erzeugt.
Ist ein Shape fertig, so kann man ihn als Virtual Clipart (VCA) unter My Objects im Warehouse speichern, um zu erreichen, dass der neue Shape auch in anderen Welten verwendet werden kann. Ansonsten kann man ihn nur in der gerade bearbeiteten Welt verwenden.

Im Shape Editor ist es auch möglich animierte Shapes zu erstellen. Man kann einen Shape z.B. blinken oder sich hin und her bewegen lassen. Dazu benutzt man sogenannte Zellen. In jeder Zelle wird einem Shape dann z.B.eine andere Farbe zugewiesen oder eine bestimmte Position eines Bewegungsablaufs gespeichert. Will man nun einen Shape blinken lassen, so erzeugt man zwei Zellen. Man weist dann der ersten Zelle eine Farbe z.B. hellrot und der zweiten Zelle eine andere Farbe z.B. dunkelrot zu. Abb. 15 zeigt das Fenster zum Erzeugen einer solchen Zelle.
 
Abb. 15: Erstellung von Animationszellen

Soll ein Shape eine Bewegung ausführen, so sind mehrere Zellen erforderlich, um die Bewegung flüssig erscheinen zu lassen. Das heisst, um einen Shape von A nach B zu bewegen, werden z.B. 5 Zellen erzeugt, von denen die erste und die fünfte die Start- bzw. Endposition des Shapes enthalten und die restlichen drei die Positionen dazwischen. Bei einem linearen Bewegungsablauf ist es möglich die Zellen zwischen Start- und Endposition automatisch zu generieren.
Abb. 16 zeigt einen Pfeil in seiner Start- und zugleich Endposition. Der Pfeil soll sich von oben nach unten bewegen und wieder zurück. Dafür wurden hier zehn Zellen verwendet. Die Zellen 1 und 10 enthalten die Start- bzw Endposition. Zelle 5 enthält eine Zwischenposition (Abb. 16). Alle anderen Zellen wurden automatisch generiert.

Abb. 16: Animierter Shape in seiner Start- und Endposition

Abb. 17: Animierter Shape in einer Zwischenposition

Hat man diesen Shape fertiggestellt, so kann man ihn in seiner Welt verwenden. Allerdings ist von Animation noch nichts zu sehen. Hierzu muss ihm erst ein Animationsattribut mitgegeben werden. Im daraufhin erscheinenden Fenster kann dann die Geschwindigkeit der Bewegung eingegeben werden.

Abb. 18: Geschwindigkeit für Animation festlegen

Diese Animation kann dann sofort in Viscape bewundert werden. Man sieht einen Pfeil, der sich kontinuierlich von oben nach unten und wieder zurück bewegt.

Um die Erstellung von komplexen Shapes mit vielen Facets zu vereinfachen, gibt es noch einige Funktionen, mit denen man z.B. ein zweidimensionalses Gebilde um seine eigene Achse rotieren lassen kann und somit ein dreidimensionales fast rundes Gebilde, wie z.B. einen Kegel zu erzeugen. Mit 'fast rund' meine ich, dass dieser Kegel nicht richtig rund ist. Sonst würde die Anzahl der benötigten Punkte und Facets unnötig in die Höhe getrieben. Stattdessen gibt es hier wiederum Funktionen, die ein nicht ganz rundes Objekt glatt und rund erscheinen lassen. Hier sei auf die angegebene Literatur verwiesen.

4.3 Image Editor

Alle Texturen, die in einer virtuellen Welt benutzt werden, können hier bearbeitet werden. Für komplexe Bildbearbeitung ist allerdings ein richtiges Paint Programm zu empfehlen. Abb. 19 zeigt den Image Editor mit einer zu bearbeitenden Textur.

Abb. 19: Image Editor
 

4.4 Sound Editor

Geräusche, die in einer virtuellen Welt benutzt werden sollen, können mit dem Sound Editor bearbeitet werden.
Abb. 20 Zeigt den Sound Editor mit einem zu berabeitendem Geräusch.

Abb. 20: Sound Editor
 

5. Superscape Control Language

Die Superscape Control Language (SCL) ist eine c-ähnliche Sprache. Ein SCL Programm ist objektbezogen und wird als Attribut einem Objekt zugefügt. Mit ihr kann man Objekte manipulieren. Man kann einfache Animationen (wie in den Beispielen oben), Links zu anderen Web Seiten, komplexe Objekteigenschaften, komplexe Animationen, Auswirkungen auf andere Objekte und vieles mehr erzeugen. SCL besitzt über 600 Befehle. Der SCL Editor ist in den World Editor integriert. Will man nun einem Objekt bestimmte Eigenschaften mittels SCL zuweisen, so braucht man dieses Objekt nur auszuwählen, und dann den SCL Editor aufrufen. Hat man den Programmcode korrekt eingegeben und will sich das Ergebnis in Viscape anschauen, so kann es vorkommen, dass überhaupt nichts passiert. Dies liegt bei manchen Befehlen daran, dass dem Objekt das entsprechende Attribut noch fehlt. Soll das Objekt z.B. durch den Befehl zangv(me)=5 um 5 Grad pro Frame um die z-Achse rotieren, hat aber noch kein Angular Velocity Attribut, so muss es dieses Attribut noch über die Menüleiste zugewiesen bekommen.

SCL arbeitet mit den gängigen Datentypen wie Integer, Float etc.. Man kann auch Felder und Zeiger verwenden. Es gibt Zuweisungen, Schleifen etc.. Ich möchte jetzt an zwei Beispielen einige für SCL typische Anweisungen vorstellen. Das erste Beispiel ist ganz einfach. Der Code lautet:

        if (activate(me,0))
        invis(me);

Hierbei soll das betreffende Objekt, wenn es mit der Maus angeklickt wird, unsichtbar werden. Danach bleibt es unsichtbar, bis die Welt wieder in ihren ursprünglichen Zustand zurückversetzt wird. Die Funktion activate besitzt zwei Parameter. Der erste Parameter bezeichnet das Objekt, das aktiviert wird. Hier hat dieser Parameter den Wert 'me', also das Objekt selbst. Der zweite Parameter gibt an, wie das Objekt aktiviert werden soll. Er hat hier den Wert '0', was bedeutet, dass das Objekt per Mausklick aktiviert wird. Die Funktion invis hat nur einen Parameter. Dieser gibt an, welches Objekt hier unsichtbar werden soll.

Das zweite Beispiel soll verdeutlichen, dass jedes SCL Programm in jeden Frame ausgeführt wird:

   repeat(5)
     zrot(me)=zrot(me)+5;
   repeat(5)
     zrot(me)=zrot(me)-5;

Hier soll das Objekt, zu dem dieses SCL Programm gehört, sich zuerst fünfmal um 5 Grad weiter um die z-Achse drehen. Danach soll es sich fünfmal um 5 Grad wieder zurückdrehen. Aber da das ganze Programm in jeden Frame ausgeführt wird ist unter Viscape keine Bewegung zu erkennen. Man muss dieses Programm also über mehrere Frames aufteilen. Der korrekte Code lautet so:

   resume(0,1)

   repeat(5)
   {
     zrot(me)=zrot(me)+5;
     waitf;
   }
   repeat(5)
   {
     zrot(me)=zrot(me)-5;
     waitf;
   }

Die resume Anweisung führt das Programm an der Stelle fort, bei der es zuletzt angehalten wurde. Die beiden Parameter werden in den Online Reference Books genauer erklärt. Das erste repeat wiederholt die folgenden in Klammern eingeschlossenen Anweisungen fünfmal. Zuerst wird die Rotationsanweisung einmal ausgeführt. Danach wird waitf ausgeführt. Waitf stoppt das Programm und wartet auf den nächsten Frame. Beim nächsten Frame wird das Programm wegen der resume Anweisung an der Stelle weitergeführt, an der es vorher gestoppt wurde. Also wird nun die erste repeat Schleife zum zweitenmal durchlaufen und danach wieder auf den nächsten Frame gewartet usw..Ist die erste repeat Schleife beendet, wird bei der zweiten repeat Anweisung wie oben fortgefahren.

6. Integration in HTML

Natürlich kann man seine eigene VISCAPE Welt auch in ein normales HTML Dokument einbinden. Das HTML-Dokument könnte z.B. so aussehen:

<HTML><CENTER>
This world is visible under Netscape Navigator and Microsoft Internet Explorer.
<P>
<OBJECT CLASSID="clsid:1B487523-BEC2-11CF-BF9E-0020AF998FF5" WIDTH=480 HEIGHT=360>
  <PARAM NAME="World" VALUE="plaza.svr" ID="iesvr">
  <EMBED SRC=plaza.svr WIDTH=480 HEIGHT=360 NAME="nssvr">
</OBJECT>
</CENTER>
</HTML>

Um eine VISCAPE Welt sowohl unter Netscape als auch unter Internet Explorer erforschen zu können, muss man noch folgendes beachten: Die CLASSID muss immer dieselbe sein, denn sie ist die einzige für VISCAPE. Der EMBED Tag wird von Microsoft Internet Explorer nicht als Parameter für den OJECT Tag verstanden, also wird er ignoriert. Netscape kennt den OBJECT Tag nicht, also ignoriert er diesen und benutzt stattdessen den EMBED Tag. Das Ergebnis sieht unter Netscape dann z.B. so aus:

Abb. 21: 3D Web Seite

7. Zusammenfassung

In dieser Seminararbeit wurden die Grundlagen für die Arbeit mit Superscapes 3D Webmaster dargestellt. Das soll heissen, 3D Webmaster kann noch viel mehr, als das, was hier vorgestellt wurde. Nicht angesprochen wurde z.B. die Möglichkeit Lichteffekte zu erzeugen bzw. Objekte so zu manipulieren, dass sie Licht reflektieren können. Weiterhin waren alle Beispiele sehr einfach gehalten. In der Regel sind virtuelle Welten sehr viel komplexer. Auch können mit SCL viel komplexere Programme erstellt werden, als hier in den kleinen Beispielen. Auch auf die Unterstützung von JavaScript konnte hier nicht mehr eingegangen werden.
Zur Beurteilung dieses Tools kann ich nur sagen, dass es sehr schwer ist, etwas zu beurteilen, wenn man kein anderes Tool zum Vergleich hat. Vorteilhaft ist sicher das komprimierte Dateiformat SVR. Dadurch können Ladezeiten übers Netz verkürzt werden. Laut Superscape ist eine Durchschnittswelt ca. 100 kB gross. Ein Nachteil ist allerdings, dass über VRT und SVR keine genauen Informationen zu erhalten waren, womit man sich schwer tut, sich ein Urteil über diese beiden Formate bilden zu können. Abschliessend lässt sich sagen, dass man sehr schnell erste Erfolge erzielen kann. Will man aber komplexere Strukturen aufbauen, so muss man auch hier sehr aufpassen, dass die Dateien nicht zu gross werden. Deshalb sollte man mit der Optimierung einer solchen Welt gut vertraut sein.

8. Literatur