Previous PageNext Page


Verteilte Welten mit Inline

Die Beschreibung von dreidimensionalen Szenen in VRML führt in der Regel zu komplexen und großen Dateien. Selbst bei einfachen Umgebungen wie unserem Kirchhof kann sich der Quellcode bereits über mehrere Listingseiten erstrecken. Um auch bei komplexeren Anwendungen als Worldbuilder den Überblick zu behalten, bietet sich das Zerlegen der Szene in mehrere sinnvolle Einheiten an, die nacheinander über das WWW transportiert und erst im Browser zu einer vollständigen virtuellen Welt zusammengesetzt werden. Der Einsatz vieler kleiner Dateien hat gegenüber einer einzigen großen Datei zudem den Vorteil, daß eventuelle Datenverluste beim Transport über das WWW leichter kompensiert werden und der Cybernaut - je nach Browser - bereits nach dem Eintreffen des Grundgerüsts die virtuelle Umgebung erkunden kann, während die restlichen Teile im Hintergrund nachgeladen werden. Solange die einzelnen Teile noch nicht vollständig eingetroffen sind, können an deren Stelle Platzhalter stehen, die bereits einen Eindruck von den Ausmaßen der zu ladenden Objekte vermitteln (siehe Abbildung 8.4).


Ebenso ist es möglich, die bereits im World Wide Web existierenden 3D-Objekte zur Gestaltung der eigenen virtuellen Umgebung zu nutzen. Via Referenz können solche datei-externen Objekte anderer Worldbuilder online in die eigene Szene integriert werden, wobei jedoch unbedingt die Urheberrechte zu beachten sind. So wäre es beispielsweise möglich, bei der Einrichtung der eigenen virtuellen vier Wände auf das Angebot eines virtuellen Möbelhauses zurückzugreifen.


Die Integration mehrerer VRML-Dateien in einer einzigen Szene erfolgt mittels des Gruppenknotens Inline. Obwohl Inline über kein explizites Feld children verfügt, gelten sämtliche Objekte der über das Feld url zu ladenden Datei als untergeordnete Kindobjekte.


Über die Felder bboxCenter und bboxSize läßt sich die Position und Größe der sogenannten Bounding Box relativ zum Elternkoordinatensystem festlegen. Unter einer Bounding Box versteht man ein quaderförmiges Gebilde, dessen Kantenlängen idealerweise exakt der maximalen Ausdehnung des umschlossenen Objekts in der jeweiligen X-, Y- und Z-Richtung entsprechen. Im allgemeinen wird die Bounding Box eines 3D-Objekts nicht im Browser dargestellt, sondern ausschließlich zur Optimierung des Rendering-Prozesses verwendet. So läßt sich anhand der einfachen Geometrie des Quaders sehr schnell berechnen, ob sich das umschlossene, in der Regel weitaus komplexere 3D-Objekt im sichtbaren Bereich der Szene befindet oder vom Rendering ausgespart werden kann. Im Zusammenhang mit dem Knoten Inline werden die Bounding Boxes der zu ladenden Objekte jedoch bei einigen VRML-Viewern vorübergehend als Platzhalter angezeigt. Um einerseits das Rendering zu optimieren und andererseits dem Cybernauten schon während des Nachladens einen ungefähren Eindruck von der 3D-Szene zu vermitteln, sollten die Ausmaße der Bounding Boxes demnach den Ausmaßen der Objekte möglichst exakt entsprechen.


Für die Aufteilung der Kirchhofszene bietet sich eine Orientierung an den ohnehin bereits mit Kommentaren und Leerzeilen markierten inhaltlichen Abschnitten an. Die Datei ,,in_basis.wrl", die das Grundgerüst für die gesamte Szene bilden soll, enthält lediglich solche Angaben, die die gesamte Szene betreffen. Hierzu gehört die Initialisierung der Viewpoints, der Lichter, der NavigationInfo, der WorldInfo und des Bodens. Für die per Inline einzubindenden, restlichen Komponenten sind lediglich die Angaben zur Positionierung und Ausrichtung aufzuführen und entsprechende Platzhalter zu definieren.


Wie gewohnt, werden im Feld url relative Adressen verwendet, wobei jedoch selbstverständlich auch auf vollständige WWW-Adressen referenziert werden kann. Spätestens beim Betrachten der Datei ,,in_basis.wrl" im VRML-Viewer werden Sie erkennen, daß die Szene durch einen weiteren Baum ergänzt wurde (siehe Abbildung 8.5). Durch die Kombination des Knotens Inline mit dem Knoten Transform ist es sehr einfach möglich, ein eigentlich identisches 3D-Objekt an verschiedenen Stellen zu positionieren und dabei in seiner Gestalt zu verändern. So wurde Baum_2 um den Faktor 1.5 über das Feld scale im Knoten Transform gestreckt, so daß die ursprünglich gleich dimensionierten Bäume in unterschiedlicher Gestalt erscheinen. Diese Methode erlaubt es, komplexe und abwechslungsreiche Szenen zu gestalten und dabei den Modellieraufwand relativ gering zu halten.


Je nach Performance Ihres Rechners werden die Platzhalter bei der lokalen Demonstration nur sehr kurz im Viewer angezeigt. Werden die Komponenten jedoch über das WWW nachgeladen, erweist sich die Aufsplittung der Szene sehr bald als nützlich, da der Cybernaut - je nach Browser - bereits nach der relativ kurzen Ladezeit der Basisdatei die ersten Schritte in der virtuellen Welt machen kann. Konnte eine Datei nicht korrekt eingebunden werden, erscheint der entsprechende Platzhalter dauerhaft in der Szene.


Die in Datei ,,in_basis.wrl" eingebundenen Dateien ,,in_later.wrl", ,,in_kirch.wrl" und ,,in_baum.wrl" entsprechen den jeweils korrespondierenden Listingzeilen aus der ehemaligen Gesamtdatei. Um den Dateien einen Rahmen zu geben, wurde der jeweilige Quellcode zusätzlich von einem Knoten Group zusammengefaßt. Stellvertretend für die beiden anderen Referenzdateien zeigt das folgende Listing, wie einfach sich die Definition des Baumes in eine separate Datei übertragen läßt.


Previous PageNext Page