07.12.2012 Aufrufe

Studienarbeit - Interaktiv begehbarer Lageplan in VRML

Studienarbeit - Interaktiv begehbarer Lageplan in VRML

Studienarbeit - Interaktiv begehbarer Lageplan in VRML

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Studienarbeit</strong><br />

<strong>Interaktiv</strong> <strong>begehbarer</strong> <strong>Lageplan</strong> <strong>in</strong> <strong>VRML</strong><br />

Möglichkeiten von <strong>VRML</strong>, Modellierung e<strong>in</strong>es Gebäudes <strong>in</strong> <strong>VRML</strong><br />

Frank Meier<br />

Universität Freiburg<br />

11. Februar 2002


Inhaltsverzeichnis<br />

1 E<strong>in</strong>leitung 3<br />

1.1 Ziel der <strong>Studienarbeit</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2 Was ist <strong>VRML</strong>? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.3 Wozu <strong>VRML</strong>? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.4 Entwicklung von <strong>VRML</strong> (<strong>VRML</strong> 1.0, <strong>VRML</strong> 2.0 und <strong>VRML</strong>97) . . 4<br />

1.5 <strong>VRML</strong> NextGeneration - Extensible 3D (X3D) . . . . . . . . . . . . . . . . 5<br />

1.6 Browser/Plug-<strong>in</strong>s zur Darstellung von <strong>VRML</strong>97 . . . . . . . . . . . . . . . 5<br />

2 E<strong>in</strong>führung <strong>in</strong> <strong>VRML</strong> 7<br />

2.1 Grundsätzlicher Aufbau e<strong>in</strong>er <strong>VRML</strong>-Datei . . . . . . . . . . . . . . . . . . 7<br />

2.2 Anchors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.3 Texturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

2.4 Unterschiedliche Viewpo<strong>in</strong>ts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

3 Auswahl der <strong>VRML</strong>-Tools 11<br />

3.1 Kriterien für die Auswahl der Modellierungssoftware . . . . . . . . . . 11<br />

3.2 Testen des <strong>VRML</strong>-Exports bei Softimage und 3D Studio Max . . . 12<br />

3.3 Andere Programme und Auswahl der Modellierungssoftware . . . . 13<br />

3.4 Repräsentation von komplexen Objekten <strong>in</strong> <strong>VRML</strong> . . . . . . . . . . . . 14<br />

4 Vorbereitung zur Modellierung des Gebäudes 051 16<br />

4.1 Prüfen der Grundrisspläne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

5 Modellierung <strong>in</strong> 3D Studio Max 19<br />

5.1 Fenster und Türen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

5.2 Info-Objekt mit Anchor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

5.3 Textur für den Boden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

5.4 E<strong>in</strong>bau des benutzbaren Fahrstuhls . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

5.5 Zusammensetzung des Modells . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24<br />

5.6 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

2


1. E<strong>in</strong>leitung<br />

1.1 Ziel der <strong>Studienarbeit</strong><br />

Mit dieser <strong>Studienarbeit</strong> soll erkundet werden, <strong>in</strong> wie weit man mittels der<br />

Modellierungssprache <strong>VRML</strong> (Virtual Reality Model<strong>in</strong>g Language) e<strong>in</strong>en<br />

<strong>in</strong>teraktiv begehbaren <strong>Lageplan</strong> erzeugen kann.<br />

Neben der Auswahl geeigneter Werkzeuge zum Erstellen der <strong>VRML</strong>-Objekte<br />

sollten auch die Möglichkeiten getestet werden andere Inhalte, z.B. HTML-<br />

Seiten, mit der <strong>VRML</strong>-Welt zu verknüpfen.<br />

Abschließend sollte exemplarisch das Gebäude 051 der Informatik <strong>in</strong> <strong>VRML</strong><br />

modelliert werden, um e<strong>in</strong>en E<strong>in</strong>druck der Darstellungsmöglichkeiten zu erlangen.<br />

1.2 Was ist <strong>VRML</strong>?<br />

Bei der Virtual Reality Model<strong>in</strong>g Language (<strong>VRML</strong>) handelt es sich um e<strong>in</strong>e<br />

Modellierungssprache für dreidimensionale Objekte. Diese Objekte können dann<br />

zu Szenen und komplexeren Welten zusammengefügt werden, <strong>in</strong> denen man sich<br />

<strong>in</strong>teraktiv bewegen kann.<br />

Mit Hilfe des World Wide Web (WWW) können solche Welten schnell Verbreitung<br />

erfahren und pr<strong>in</strong>zipiell ist mit e<strong>in</strong>em geeigneten Browser bzw. e<strong>in</strong>er<br />

geeigneten Browser-Erweiterung jeder <strong>in</strong> der Lage, Zugang zu erlangen.<br />

Ähnlich wie beim HTML-Standard sorgt e<strong>in</strong> Komitee, das Web3D Consortium<br />

[2], ehemals die <strong>VRML</strong> Architecture Group (VAG) [3], für die e<strong>in</strong>heitliche<br />

Def<strong>in</strong>ition und Erweiterungen der Sprache.<br />

1.3 Wozu <strong>VRML</strong>?<br />

Überall dort wo zweidimensionale Bilder eher unzureichend Informationen<br />

vermitteln bietet sich e<strong>in</strong>e Verwendung von <strong>VRML</strong> an. Der große Vorteil von<br />

<strong>VRML</strong> ist die <strong>Interaktiv</strong>ität. Der Blickw<strong>in</strong>kel, wie der Benutzer sich die Welt<br />

ansieht, ist frei wählbar und nicht durch e<strong>in</strong>e statische Aufnahme vorgegeben. Der<br />

Benutzer kann so die Darstellung an die eigenen Bedürfnisse anpassen.<br />

Bei der Zusammenbau-Anleitung e<strong>in</strong>es Tisches <strong>in</strong> <strong>VRML</strong> ist es z.B. möglich, das<br />

ganze Objekt von allen Seiten anzusehen, was gegenüber der statischen, herkömmlichen<br />

Darstellung <strong>in</strong> Form e<strong>in</strong>er Explosionszeichnung, Vorteile bietet.<br />

Auch zur Verdeutlichung kristallographischer Strukturen, z.B. bei Silizium, kann<br />

e<strong>in</strong> vom Betrachter drehbares Modell von Vorteil se<strong>in</strong>.<br />

Durch die effiziente Repräsentation der dreidimensionalen Modelle bietet sich<br />

<strong>VRML</strong> gerade auch zur Nutzung über Netzwerke an. Bei der Onl<strong>in</strong>e-Reservierung<br />

von Karten für Theater, K<strong>in</strong>o oder ähnliche Veranstaltungen, kann mittels e<strong>in</strong>er<br />

3


<strong>VRML</strong>-Darstellung des Theater- bzw. K<strong>in</strong>osaales jeder Kunde sich selbst e<strong>in</strong> Bild<br />

machen, wie der Blick von den Plätzen ist, bevor er die Reservierung abschließt.<br />

Die Anwendungsmöglichkeiten für <strong>VRML</strong> s<strong>in</strong>d pr<strong>in</strong>zipiell so vielfältig wie es<br />

dreidimensionale Objekte <strong>in</strong> unserer Welt gibt. Es gilt allerd<strong>in</strong>gs bei jedem<br />

e<strong>in</strong>zelnen Objekt immer abzuwägen, ob e<strong>in</strong>e dreidimensionale Darstellung <strong>in</strong><br />

<strong>VRML</strong> Vorteile gegenüber e<strong>in</strong>er Zweidimensionalen br<strong>in</strong>gt.<br />

1.4 Entwicklung von <strong>VRML</strong> (<strong>VRML</strong> 1.0, <strong>VRML</strong> 2.0 und <strong>VRML</strong>97)<br />

Zur "First International Conference on World-Wide-Web", im Mai 1994, bat Tim<br />

Berners-Lee, die zentrale Figur bei der Erschaffung des WWW, Mark Pesce e<strong>in</strong><br />

Papier vorzustellen [4]. Er hatte mit se<strong>in</strong>em Partner Tony Parisi e<strong>in</strong> 3D Interface<br />

für das Web entwickelt. Nach der Präsentation war man sich auf der Konferenz<br />

e<strong>in</strong>ig, dass e<strong>in</strong>e Notwendigkeit dar<strong>in</strong> bestand, e<strong>in</strong>e geme<strong>in</strong>same Sprache zur<br />

Beschreibung dreidimensionaler Szenen zu entwickeln.<br />

Aus "Labyr<strong>in</strong>th", so der Name des vorgestellten Interface, entwickelten sich nach<br />

der Konferenz rasch, mit Hilfe e<strong>in</strong>er Mail<strong>in</strong>g-Liste und Mitarbeit aus der ganzen<br />

Welt, die <strong>VRML</strong>-Spezifikationen. Mit Hilfe von Silicon Graphics Inc. (SGI),<br />

deren Inventor File Format für <strong>VRML</strong> angepasst wurde, entstand aus den Bemühungen<br />

<strong>VRML</strong> 1.0.<br />

1995 gründete sich aus den führenden Experten der Mail<strong>in</strong>g-Liste die <strong>VRML</strong><br />

Architecture Group (VAG), die die Standardisierung der Sprache und die<br />

Weiterentwicklung kontrollieren sollte.<br />

<strong>VRML</strong> 1.0 bot die Möglichkeit, komplexe dreidimensionale Szenen mit<br />

Materialien, Lichtern und verschiedenen Kameraperspektive zu modellieren. Was<br />

allerd<strong>in</strong>gs fehlte war e<strong>in</strong>e größere <strong>Interaktiv</strong>ität und bewegliche Objekte <strong>in</strong> den<br />

<strong>VRML</strong>-Welten. Diese unter dem Begriff "mov<strong>in</strong>g worlds" angestrebten<br />

Erweiterungen führten zu den ersten Anforderungen für <strong>VRML</strong> 2.0. Im August<br />

1996 wurde auf der Siggraph 96, e<strong>in</strong>er Messe rund um die Thematik<br />

Computergrafik, <strong>VRML</strong> 2.0 vorgestellt. Gleichzeitig strebte man e<strong>in</strong>e Standardisierung<br />

durch die International Organization for Standardisation (ISO) an.<br />

1997 war es soweit: Unter dem Begriff <strong>VRML</strong>97 wurde <strong>VRML</strong> zum ISO-<br />

Standard (ISO/IEC 14772-1:1997) zur Beschreibung dreidimensionaler Inhalte im<br />

WWW. <strong>VRML</strong>97 ist nahezu identisch mit den <strong>VRML</strong> 2.0 Spezifikationen. Seit<br />

dem gab es ke<strong>in</strong>en neuen Versionssprung von <strong>VRML</strong>. Auch heute noch ist der<br />

aktuelle Stand <strong>VRML</strong>97, es wird allerd<strong>in</strong>gs an e<strong>in</strong>er neuen Version gearbeitet.<br />

E<strong>in</strong> wichtiger Schritt für das <strong>VRML</strong>-Konsortium war der Beitritt von Sun<br />

Microsystems 1998 [5]. Sun wollte die Zusammenarbeit zwischen ihrer Java 3D<br />

API (Java3D) und <strong>VRML</strong>97 stärken. Mit Hilfe von Java3D sollte es zukünftig<br />

e<strong>in</strong>facher möglich se<strong>in</strong>, Applikationen oder auch Applets für das Web zu<br />

programmieren, mit denen <strong>VRML</strong>97-Inhalte problemlos dargestellt werden<br />

können.<br />

4


Ende 1998 benannte sich die <strong>VRML</strong> Architecture Group <strong>in</strong> das Web3D<br />

Consortium um [6]. Die Aufgaben des Konsortiums sollten sich nicht mehr nur<br />

auf die Weiterentwicklung von <strong>VRML</strong> konzentrieren, sondern sich allgeme<strong>in</strong> um<br />

die Erstellung von offenen 3D-Standards für das Web und dem Zusammenspiel<br />

mit Applikationen für dreidimensionale Darstellungen kümmern.<br />

1.5 <strong>VRML</strong> NextGeneration - Extensible 3D (X3D)<br />

Auf der <strong>VRML</strong>'99, der vierten Internationalen Konferenz über <strong>VRML</strong> und 3D<br />

Webtechnologien, wurde e<strong>in</strong>iges an Unmut über <strong>VRML</strong>97 laut. In erster L<strong>in</strong>ie<br />

wurde die Komplexität der Sprache bemängelt, was besonders bei den Herstellern<br />

von Browsern dazu führte, dass selbst nach 2 Jahren ke<strong>in</strong> völlig Kompatibler<br />

entwickelt werden konnte. Heiß diskutiert wurde daher über das sog. <strong>VRML</strong><br />

NextGeneration (<strong>VRML</strong> NG) [7], was dieses Manko und noch e<strong>in</strong>ige andere<br />

Unzulänglichkeiten beseitigen sollte. Manchmal unter dem Begriff <strong>VRML</strong>99<br />

zusammengefasst, lautet die Arbeitsbezeichnung für dieses <strong>VRML</strong><br />

NextGeneration nun Extensible 3D (X3D) [7].<br />

X3D ist stärker <strong>in</strong> e<strong>in</strong>zelne Komponenten unterteilt und kann somit leicht um<br />

benötigte Funktionen erweitert werden. Je nach Anforderung kann auf Standard-<br />

Sets zurückgegriffen werden, die für verschiedene Bereiche e<strong>in</strong>e optimale<br />

Auswahl der Komponenten zur Verfügung stellen.<br />

Da das WWW-Konsortium (W3C) im Moment e<strong>in</strong>e Menge Energie <strong>in</strong> die<br />

Entwicklung und Verbreitung der Extensible Markup Language (XML) steckt, ist<br />

X3D zudem XML-Konform, um Zukunftssicherheit zu gewährleisten. Neben<br />

neuer Funktionalität gewährleistet X3D außerdem e<strong>in</strong>e völlige Rückwärtskompatibilität<br />

zu <strong>VRML</strong>97.<br />

Momentan ist X3D allerd<strong>in</strong>gs noch <strong>in</strong> der Entwicklung, soll später aber als<br />

Nachfolger zu <strong>VRML</strong>97 standardisiert werden. Wichtigste Entwicklung an der im<br />

Moment gearbeitet wird ist e<strong>in</strong> Open-Source Browser für X3D-Inhalte, der <strong>in</strong><br />

Form von Xj3D [9] langsam Form annimmt.<br />

1.6 Browser/Plug-<strong>in</strong>s zur Darstellung von <strong>VRML</strong>97<br />

Es gibt e<strong>in</strong>e Reihe von Browsern für <strong>VRML</strong> [10]. Wie schon im vorherigen<br />

Kapitel erwähnt, ist e<strong>in</strong>es der Hauptprobleme auch heute noch die Kompatibilität<br />

zu <strong>VRML</strong>97, die sich teilweise <strong>in</strong> unterschiedlichen Darstellungen äußert.<br />

Neben der Kompatibilität zu <strong>VRML</strong>97 war für diese <strong>Studienarbeit</strong> auch noch<br />

wichtig, e<strong>in</strong>en Browser zu haben, der auf vielen Plattformen läuft und speziell auf<br />

SGI-Plattformen.<br />

Der Cosmo-Player [11] von SGI schien mir von Anfang an die beste Lösung zu<br />

se<strong>in</strong>, da er von vielen Seiten als Referenzbrowser angegeben wird und für<br />

W<strong>in</strong>dows, SGI (Irix) und Mac<strong>in</strong>tosh zur Verfügung steht. Ich wählte ihn daher als<br />

Referenzbrowser für dieses Projekt aus.<br />

Leider verkaufte SGI die Tochterfirma Cosmo Software, die den Browser programmiert<br />

hatte. Plat<strong>in</strong>um übernahm daraufh<strong>in</strong> Cosmo Software und kündigte an,<br />

5


den Quellecode zu veröffentlichen, damit der Player von jedem weiterentwickelt<br />

werden könne. Plat<strong>in</strong>um wurde aber wiederum von Computer Associates<br />

aufgekauft und die Pläne zur Veröffentlichung des Quellecodes liegen seitdem auf<br />

Eis, so dass es schon seit geraumer Zeit nun ke<strong>in</strong>e weiteren Updates des Players<br />

gibt. Wegen der sehr guten Darstellungseigenschaften und Kompatibilität<br />

existieren allerd<strong>in</strong>gs Foren und Seiten mit Anleitungen, wie der Cosmo Player<br />

auch mit neueren Browsern betrieben werden kann [12].<br />

Als Alternative zur Darstellung bieten sich noch folgende <strong>VRML</strong>-Browser an:<br />

Blaxxun Contact [13]:<br />

Nur für W<strong>in</strong>dows-Plattform verfügbar. Dafür e<strong>in</strong>e sehr schnelle <strong>VRML</strong>-<br />

Darstellung und leichte Installation.<br />

Cortona <strong>VRML</strong> Client [14]:<br />

Plug<strong>in</strong> für Netscape und Internet-Explorer. Verfügbar für W<strong>in</strong>dows und<br />

Mac<strong>in</strong>tosh. Sehr leichte Installation.<br />

Open<strong>VRML</strong> - Lookat Viewer [15]:<br />

Open<strong>VRML</strong> ist e<strong>in</strong>e Runtime-Library für <strong>VRML</strong>-Darstellung, die auf<br />

vielen verschiedenen Plattformen verfügbar ist (Digital Unix, HP-UX,<br />

IBM AIX, L<strong>in</strong>ux, SGI, Sun, W<strong>in</strong>dows). Als Applikation zur Darstellung<br />

wird Lookat mitgeliefert, e<strong>in</strong> sehr e<strong>in</strong>facher <strong>VRML</strong> Browser. Es gibt<br />

bereits Plug<strong>in</strong>-Lösungen für gängige Browser. Nachteil ist die recht<br />

komplizierte Installation.<br />

6


2. E<strong>in</strong>führung <strong>in</strong> <strong>VRML</strong><br />

E<strong>in</strong>e <strong>VRML</strong>-Datei besteht aus e<strong>in</strong>er Sammlung von Objekten, aus denen sich die<br />

<strong>VRML</strong>-Welt zusammensetzt. Objekte haben dabei gewisse Eigenschaften, ähnlich<br />

wie im realen Leben. Sie haben e<strong>in</strong>e gewisse Form, Oberflächeneigenschaften und<br />

Position im dreidimensionalen Raum. Es gibt auch spezielle <strong>VRML</strong>-Objekte wie<br />

Sound und Licht, die alle ebenfalls e<strong>in</strong>e konkrete Position im dreidimensionalen<br />

Raum haben.<br />

#<strong>VRML</strong> V2.0 utf8<br />

Shape {<br />

appearance Appearance {<br />

material Material {<br />

diffuseColor .5 0 .5<br />

sh<strong>in</strong><strong>in</strong>ess .5<br />

}<br />

}<br />

geometry Box {<br />

size 2 2 2<br />

}<br />

}<br />

Abbildung 2.1: Def<strong>in</strong>ition e<strong>in</strong>es lila Würfels <strong>in</strong> <strong>VRML</strong> (l<strong>in</strong>ks) und dessen Darstellung.<br />

2.1 Grundsätzlicher Aufbau e<strong>in</strong>er <strong>VRML</strong>-Datei<br />

Nodes (Knoten) s<strong>in</strong>d die fundamentalen E<strong>in</strong>heiten <strong>in</strong> e<strong>in</strong>er <strong>VRML</strong>-Datei. E<strong>in</strong>ige<br />

Nodes s<strong>in</strong>d Objekte, zum Beispiel Zyl<strong>in</strong>der, Kugeln, Sche<strong>in</strong>werfer etc. Andere<br />

dienen lediglich als Conta<strong>in</strong>er für weitere Nodes. So besteht der sog. Shape-Node<br />

(Form-Knoten) aus zwei weiteren Nodes, die e<strong>in</strong>mal das Aussehen und die<br />

Geometrie def<strong>in</strong>ieren.<br />

Neben den Nodes, die sichtbare Auswirkung auf die <strong>VRML</strong>-Welt haben, gibt es<br />

auch noch e<strong>in</strong>ige Nodes, die spezielle Eigenschaften def<strong>in</strong>ieren. So wird z.B. das<br />

Hyperl<strong>in</strong>k<strong>in</strong>g ermöglicht oder Berührungs-/Kollisionsabfragen von Objekten.<br />

In Abbildung 2.1 sieht man anhand der Darstellung e<strong>in</strong>es Würfels <strong>in</strong> <strong>VRML</strong> die<br />

Grundeigenschaften beim Aufbau e<strong>in</strong>er <strong>VRML</strong>-Datei. Zuerst der Header, #<strong>VRML</strong><br />

V2.0 utf8, der die Datei als e<strong>in</strong>e <strong>VRML</strong> 2.0 bzw. <strong>VRML</strong>97 Datei identifiziert.<br />

Danach kommt der Shape-Node, der sich <strong>in</strong> den Appearance-Node und den<br />

Geometry-Node aufteilt.<br />

7


Der Appearance-Node legt das Aussehen fest. Er enthält dafür den Material-Node,<br />

mit dessen Hilfe wir die Materialeigenschaften so e<strong>in</strong>stellen, dass wir <strong>in</strong> unserem<br />

Fall e<strong>in</strong>en lila Würfel erhalten. Die diffuseColor wird dabei <strong>in</strong> Form e<strong>in</strong>es RGB-<br />

Wertes angeben. Sh<strong>in</strong><strong>in</strong>ess legt fest, ob es sich um e<strong>in</strong>e Oberfläche ohne Glanz (0)<br />

oder um e<strong>in</strong>e hoch polierte Oberfläche mit viel Glanz (1.0) handelt. Wir haben<br />

e<strong>in</strong>en Mittelwert gewählt. Mit Hilfe des Gemoetry-Node erzeugen wir jetzt e<strong>in</strong>en<br />

e<strong>in</strong>fachen Würfel mit der Kantenlänge 2.<br />

2.2 Anchors<br />

Der Anchor-Node ist sehr flexibel. Er dient dazu, Hyperl<strong>in</strong>ks zu anderen <strong>VRML</strong>-<br />

Szenen, HTML-Seiten, Sound oder Filmdateien herzustellen. Er ist vergleichbar<br />

mit dem aus HTML bekannten Setzen von L<strong>in</strong>ks und Anchors.<br />

#<strong>VRML</strong> V2.0 utf8<br />

DEF L<strong>in</strong>k Anchor {<br />

url "http://www.<strong>in</strong>formatik.uni-freiburg.de"<br />

description "Startseite der Informatik"<br />

children [<br />

]<br />

}<br />

Shape {<br />

appearance Appearance {<br />

material Material {<br />

diffuseColor .5 0 .5<br />

sh<strong>in</strong><strong>in</strong>ess .5<br />

}<br />

}<br />

geometry Box {<br />

size 2 2 2<br />

}<br />

}<br />

Abbildung 2.2: Erzeugen e<strong>in</strong>es Anchors. Durch Klicken des Würfels kommt man auf die<br />

<strong>in</strong> url angegebene HTML-Seite.<br />

Über DEF def<strong>in</strong>ieren wir uns e<strong>in</strong>en eigenen Anchor-Node mit dem Namen<br />

"L<strong>in</strong>k". Über url spezifiziert man die URL, die aufgerufen werden soll. Über die<br />

description wird e<strong>in</strong> Kommentar angezeigt, wenn die Maus über den Würfel fährt.<br />

Innerhalb der eckigen Klammern von children können nun die Objekte def<strong>in</strong>iert<br />

werden, die durch Anklicken die URL aufrufen sollen. Wir nehmen dazu den<br />

Würfel aus Abbildung 2.1. Durch Anklicken gelangt man nun auf die Startseite<br />

der Informatik-Homepage.<br />

8


2.3 Texturen<br />

Es ist sehr leicht <strong>in</strong> <strong>VRML</strong> Texturen auf Objekte zu legen. Hierzu bedarf es nur<br />

dem H<strong>in</strong>zufügen der Texture-Node (Abbildung 2.3) unter der übergeordneten<br />

Appearance-Node.<br />

#<strong>VRML</strong> V2.0 utf8<br />

Shape {<br />

appearance Appearance {<br />

material Material {<br />

diffuseColor 1.0 0 0<br />

sh<strong>in</strong><strong>in</strong>ess .5<br />

}<br />

texture ImageTexture {<br />

url "texture.jpg"<br />

}<br />

}<br />

geometry Sphere {<br />

radius 3<br />

}<br />

}<br />

#<strong>VRML</strong> V2.0 utf8<br />

Abbildung 2.3: Durch H<strong>in</strong>zufügen e<strong>in</strong>er Textur wird aus e<strong>in</strong>er roten Kugel die Erde.<br />

<strong>VRML</strong> bietet außerdem die Möglichkeit e<strong>in</strong>en Film im MPEG1 Format als Textur<br />

zu verwenden, der dann auf dem Objekt abgespielt wird. In Abbildung 2.4 wird<br />

gezeigt, wie über den lila Würfel aus Abbildung 2.1 e<strong>in</strong> Mpeg-Film als Textur<br />

gelegt wird.<br />

Shape {<br />

appearance Appearance {<br />

material Material {<br />

diffuseColor .5 0 .5<br />

sh<strong>in</strong><strong>in</strong>ess .5<br />

}<br />

texture MovieTexture {<br />

url "texture.mpeg"<br />

speed 1<br />

loop TRUE<br />

}<br />

}<br />

geometry Box {<br />

size 2 2 2<br />

}<br />

}<br />

Abbildung 2.4: In <strong>VRML</strong> kann auch e<strong>in</strong> MPEG-Film als Textur verwendet werden.<br />

9


2.4 Unterschiedliche Viewpo<strong>in</strong>ts<br />

In e<strong>in</strong>er <strong>VRML</strong> Welt können verschieden Kameraperspektiven vorgegeben<br />

werden, die als E<strong>in</strong>stiegspunkte zum Begehen der Welt dienen können. Mit Hilfe<br />

des Anchor-Node ist es auch sehr e<strong>in</strong>fach möglich, e<strong>in</strong>en Wechsel zu e<strong>in</strong>em<br />

bestimmten Viewpo<strong>in</strong>t durch Anklicken e<strong>in</strong>es Objektes zu realisieren und damit<br />

die Navigation <strong>in</strong> e<strong>in</strong>er <strong>VRML</strong>-Welt zu erleichtern.<br />

#<strong>VRML</strong> V2.0 utf8<br />

DEF View1 Viewpo<strong>in</strong>t {<br />

position -4 1.5 3<br />

orientation 0.3673 0.9158 0.1625 -0.9<br />

fieldOfView 0.7854<br />

description "Viewpo<strong>in</strong>t 1"<br />

}<br />

DEF View2 Viewpo<strong>in</strong>t {<br />

position -10 9 3<br />

orientation 0.3673 0.9158 0.5625 -0.9<br />

fieldOfView 0.7854<br />

description "Viewpo<strong>in</strong>t 2"<br />

}<br />

DEF L<strong>in</strong>k Anchor {<br />

url "#View2"<br />

description "Wechseln zum 2. Viewpo<strong>in</strong>t"<br />

children [<br />

Shape {<br />

appearance Appearance {<br />

material Material {<br />

diffuseColor .5 0 .5<br />

sh<strong>in</strong><strong>in</strong>ess .5<br />

}<br />

}<br />

geometry Box {<br />

size 2 2 2<br />

}<br />

}<br />

]<br />

} Abbildung 2.5: Def<strong>in</strong>ieren von zwei Viewpo<strong>in</strong>ts und Wechseln mittels Anklicken des Würfels.<br />

In Abbildung 2.5 werden bei dem lila Würfel aus Abbildung 2.1 zwei Viewpo<strong>in</strong>ts<br />

def<strong>in</strong>iert und mittels e<strong>in</strong>es Anchor-Node e<strong>in</strong> Wechsel zum zweiten Viewpo<strong>in</strong>t<br />

durch Anklicken des Würfels realisiert.<br />

Durch position wird die Position der Kamera def<strong>in</strong>iert, orientation bestimmt die<br />

Blickrichtung der Kamera und mit fieldOfView kann man die L<strong>in</strong>sene<strong>in</strong>stellungen<br />

(Tele - Weitw<strong>in</strong>kel) der Kamera festlegen.<br />

10


3. Auswahl der <strong>VRML</strong>-Tools<br />

Es wäre natürlich sehr mühsam, wenn man e<strong>in</strong>e <strong>VRML</strong>-Datei immer von Hand<br />

schreiben müsste. Bei komplexeren Welten wäre das sogar unmöglich. Hierzu<br />

bedarf es e<strong>in</strong>es Programms, welches das Designen e<strong>in</strong>er <strong>VRML</strong>-Welt erleichtert.<br />

Nach dem grundsätzlichen E<strong>in</strong>arbeiten <strong>in</strong> die Möglichkeiten von <strong>VRML</strong> machte<br />

ich mich daher auf die Suche nach e<strong>in</strong>em 3D-Grafikprogramm, das mir e<strong>in</strong>en<br />

e<strong>in</strong>fachen Export nach <strong>VRML</strong> erlaubte.<br />

3.1 Kriterien für die Auswahl der Modellierungssoftware<br />

Für die Programmauswahl gab es e<strong>in</strong>ige Anforderungen. E<strong>in</strong>mal musste das 3D-<br />

Programm e<strong>in</strong>en <strong>VRML</strong>-Exporter besitzen und am besten e<strong>in</strong>en, der <strong>VRML</strong>97<br />

unterstützt, um direkt die erweiterten Interaktionsmöglichkeiten nutzen zu<br />

können. Gleichzeitig musste das Programm auch komplex genug se<strong>in</strong>, damit e<strong>in</strong><br />

komplettes Gebäude nebst Innenraummodellierung damit realisierbar war.<br />

E<strong>in</strong> weiteres Kriterium war der direkte Import von WMF, DWG und DXF<br />

Dateien. In diesen beiden Formaten lagen mir Grundrisspläne und Modelle des<br />

Gebäudes 051 vor (siehe näheres zu den Formaten <strong>in</strong> Kapitel 4). E<strong>in</strong> direkter<br />

Import hätte den Vorteil, nicht über e<strong>in</strong> externes Konvertierungsprogramm gehen<br />

zu müssen.<br />

Als erstes sah ich mich unter den kostenlosen Designprogrammen für <strong>VRML</strong> [16]<br />

um, musste aber schnell feststellen, dass diese eher ungeeignet für die<br />

<strong>Studienarbeit</strong> waren. Mit Freeware-Programmen wie W<strong>in</strong>Place [17] kann man<br />

zwar e<strong>in</strong>fache Szenen recht schnell erstellen, aber es fehlen erweiterte<br />

Möglichkeiten, um e<strong>in</strong>e Gebäudemodellierung <strong>in</strong> Angriff zu nehmen. Ähnliches<br />

galt auch für die bereits schon komplexeren Shareware-Programme, wie AC3D<br />

[18].<br />

Ich sah mich daher bei den professionelleren Produkten genauer um. Zwei Programme<br />

boten sich dank <strong>in</strong> der Universität vorhandener Lizenzen besonders an.<br />

Softimage 3.51 [19], wofür auf den SGIs Lizenzen vorhanden waren und 3D<br />

Studio Max 2.0 [20], was auf der W<strong>in</strong>dows NT Plattform verfügbar war. Beide<br />

Programme bieten e<strong>in</strong>en <strong>VRML</strong>-Exporter, wobei Softimage lediglich <strong>VRML</strong> 1.0<br />

unterstützt. Die restlichen Programme, die ich <strong>in</strong> die nähere Auswahl zog waren<br />

Caligari TrueSpace [21] und Maxon C<strong>in</strong>ema 4D XL [22].<br />

Allesamt unterstützen den Export nach <strong>VRML</strong> entweder direkt oder über e<strong>in</strong><br />

Plug<strong>in</strong>. Ich konzentrierte mich erst e<strong>in</strong>mal auf die zwei vorhandenen Programme,<br />

um zu testen, ob nicht bereits e<strong>in</strong> geeignetes Programmen vorhanden ist und somit<br />

ke<strong>in</strong>e neuen Kosten entstehen würden.<br />

11


3.2 Testen des <strong>VRML</strong>-Exports bei Softimage und 3D Studio Max<br />

Zum Testen der <strong>VRML</strong>-Exportfähigkeiten und der Bedienung, konstruierte ich <strong>in</strong><br />

beiden Programmen e<strong>in</strong> etwa vergleichbares Gebäude-Modell.<br />

Abbildung 3.1: Das Testmodell im jeweiligen 3D-Programm gerendert. Softimage (l<strong>in</strong>ks) und<br />

3D Studio Max (rechts).<br />

Da ich Softimage bereits etwas kannte, dauerte der Entwurf dort nicht sehr lange<br />

[23]. Etwas mehr Zeit kostete die E<strong>in</strong>arbeitung <strong>in</strong> 3D Studio Max, mit dem man<br />

aber sehr komfortabel arbeiten kann, wenn man sich erst e<strong>in</strong>mal an die Bedienoberfläche<br />

gewöhnt hat. 3D Studio Max dürfte im Vergleich mit Softimage,<br />

gerade für Neue<strong>in</strong>steiger, wohl auch das deutlich leichter zu erlernende Programm<br />

se<strong>in</strong>. Es folgt der gewohnten W<strong>in</strong>dows-Benutzerführung und erleichtert somit den<br />

E<strong>in</strong>stieg gegenüber Softimage erheblich.<br />

Nachdem ich die Szene <strong>in</strong> Softimage konstruiert hatte, benutzte ich den<br />

e<strong>in</strong>gebauten <strong>VRML</strong>-Export um e<strong>in</strong>e <strong>VRML</strong>-Datei zu erzeugen. Das Ergebnis war<br />

ernüchternd. Die Darstellung der <strong>VRML</strong>-Datei war fehlerhaft. Dort wo ich die<br />

Abbildung 3.2: Darstellungsfehler des Softimage <strong>VRML</strong>-Exporters.<br />

Türen mittels e<strong>in</strong>er booleschen Operation (siehe Kapitel 5) erzeugt hatte, gab es<br />

massive Darstellungsfehler (Abbildung 3.2).<br />

12


Die Darstellungsfehler blieben auch bei Verwendung anderer <strong>VRML</strong>-Browser<br />

und mehrfacher Überarbeitungen der Szene. Ich begann im Internet zu recherchieren,<br />

ob jemand ähnliche Probleme hatte und wurde auch rasch fündig. Die<br />

Probleme mit dem <strong>VRML</strong>-Export bei Softimage waren h<strong>in</strong>länglich bekannt.<br />

Im Gegensatz zu Softimage, das nur <strong>VRML</strong> 1.0 exportierte und dabei auch noch<br />

fehlerhaft, unterstützte der Export von 3D Studio Max die vollen <strong>VRML</strong> 2.0 bzw.<br />

<strong>VRML</strong>97-Spezifikationen. Die Darstellung des Testmodells war fehlerfrei<br />

(Abbildung 3.3). Darüber h<strong>in</strong>aus bietet das Export-Interface von 3D Studio Max<br />

sogar Möglichkeiten zum Fe<strong>in</strong>tun<strong>in</strong>g der <strong>VRML</strong>-Datei anhand diverser Exporte<strong>in</strong>stellungen.<br />

Abbildung 3.3: E<strong>in</strong>wandfreier <strong>VRML</strong> Export bei 3D Studio Max.<br />

3.3 Andere Programme und Auswahl der Modellierungssoftware<br />

3D Studio Max überzeugte nicht nur beim Export von <strong>VRML</strong> auf ganzer L<strong>in</strong>ie, es<br />

bot auch Importfunktionen für DXF und DWG (sieh Abschnitt 3.1). Lediglich das<br />

Importieren von WMF fehlte.<br />

Ebenso gut wie der Export nach <strong>VRML</strong>, schien die E<strong>in</strong>b<strong>in</strong>dung von <strong>VRML</strong>-<br />

Elemeten wie Anchors gelöst zu se<strong>in</strong>. Direkt beim Konstruieren können über e<strong>in</strong>e<br />

eigene Sammlung von <strong>VRML</strong>-Tools, Elemente wie Anchors leicht <strong>in</strong> die Szene<br />

<strong>in</strong>tegriert und mit Objekten verknüpft werden.<br />

Mir fiel daher die Entscheidung nicht schwer, 3D Studio Max für den weiteren<br />

Gebrauch <strong>in</strong>nerhalb des Projektes zu verwenden und die anderen Produkte nicht<br />

mehr e<strong>in</strong>er näheren Untersuchung zu unterziehen, obwohl sie durchaus auch<br />

geeignet gewesen wären. Das vorhandene 3D Studio ersparte nicht nur Kosten,<br />

sondern schien auch e<strong>in</strong>e sehr geeignete Lösung zu se<strong>in</strong>. Kurz erwähnen möchte<br />

ich die beiden anderen Produkte aber noch.<br />

Caligari TrueSpace, <strong>in</strong>zwischen <strong>in</strong> der Version 5, ist e<strong>in</strong> Programm das sich<br />

speziell durch se<strong>in</strong>en schnellen Renderer auszeichnet, der auch Echtzeitmanipulationen<br />

bei kle<strong>in</strong>eren Szenen zulässt und so Künstlern bei der Modellierung<br />

viel Freiheit gibt. Das Programm kann <strong>VRML</strong> 2.0 exportieren. Beim<br />

13


Import werden nur DXF-Dateien unterstützt. <strong>VRML</strong>-Elemente wie Anchors<br />

werden direkt im Programm unterstützt.<br />

Maxon C<strong>in</strong>ema 4D XL, <strong>in</strong>zwischen <strong>in</strong> der Version 7.3, unterstützt den <strong>VRML</strong> 2.0<br />

Export. E<strong>in</strong>e Importfunktion für DXF-Dateien ist ebenfalls vorhanden. Das<br />

Programm ist ähnlich wie 3D Studio Max e<strong>in</strong> Allround-Talent und deckt viele<br />

Bereiche ab. Die Unterstützung von <strong>VRML</strong> 2.0 be<strong>in</strong>haltet auch das Umgehen mit<br />

<strong>VRML</strong>-Elementen wie Anchors.<br />

Auch 3D Studio Max liegt <strong>in</strong>zwischen <strong>in</strong> e<strong>in</strong>er neuen Version 4.2 vor. An der<br />

grundsätzlichen Bedienung hat sich nichts geändert. Allerd<strong>in</strong>gs hat der Funktionsumfang<br />

des Programms deutlich zugenommen. Die <strong>VRML</strong>97 Unterstützung ist<br />

nach wie vor vorhanden und es können wie gewohnt <strong>VRML</strong>-Elemente direkt im<br />

Programm bearbeitet werden.<br />

3.4 Repräsentation von komplexen Objekten <strong>in</strong> <strong>VRML</strong><br />

Anhand der booleschen Operation (Subtraktion) aus Abschnitt 3.2 lässt sich<br />

verdeutlichen, wie <strong>in</strong> <strong>VRML</strong> komplexere Objekte dargestellt werden. Wenn also<br />

die Konstruktion mittels Grundelementen wie Kugeln, Zyl<strong>in</strong>dern, Quadern etc.<br />

nicht mehr möglich ist.<br />

Abbildung 3.4: Öffnung <strong>in</strong> Quader mittels boolescher Operation erzeugt.<br />

Zur Demonstration habe ich aus e<strong>in</strong>em gelben Quader mit Hilfe e<strong>in</strong>er booleschen<br />

Operation (Subtraktion e<strong>in</strong>es anderen Quaders) e<strong>in</strong>e Öffnung geschnitten<br />

(Abbildung 3.4).<br />

Während für den gelben Quader (l<strong>in</strong>ks) e<strong>in</strong>e e<strong>in</strong>fache Geometrie-Angabe mittels<br />

geometry Box { size 6 2 1 }<br />

gereicht hätte, muss man bei dem durch die Subtraktion entstandenem komplexeren<br />

Objekt zu e<strong>in</strong>em sog. Indexed Face Set zurückgreifen (Abbildung 3.4).<br />

14


#<strong>VRML</strong> V2.0 utf8<br />

Shape {<br />

appearance Appearance {<br />

material Material {<br />

diffuseColor 1 1 0<br />

sh<strong>in</strong><strong>in</strong>ess .5<br />

}<br />

}<br />

geometry IndexedFaceSet {<br />

coord Coord<strong>in</strong>ate { po<strong>in</strong>t [<br />

-3 0 0.5, 3 0 0.5, -3 0 -0.5, 3 0 -0.5, -3 2 0.5, 3 2 0.5,<br />

-3 2 -0.5, 3 2 -0.5, 1 0.4752 0.5, -1 0.4752 0.5, -1 0.4752 -0.5,<br />

1 0.4752 -0.5, -1 1.475 0.5, 1 1.475 0.5, 1 1.475 -0.5,<br />

-1 1.475 -0.5]<br />

}<br />

coordIndex [<br />

0, 2, 3, -1, 3, 1, 0, -1, 4, 5, 7, -1, 7, 6, 4, -1, 1, 3, 7, -1,<br />

7, 5, 1, -1, 2, 0, 4, -1, 4, 6, 2, -1, 5, 13, 8, -1,<br />

1, 5, 8, -1, 0, 1, 8, -1, 0, 8, 9, -1, 4, 0, 9, -1,<br />

4, 9, 12, -1, 5, 4, 12, -1, 13, 5, 12, -1, 6, 15, 10, -1,<br />

2, 6, 10, -1, 3, 2, 10, -1, 3, 10, 11, -1, 7, 3, 11, -1,<br />

7, 11, 14, -1, 6, 7, 14, -1, 15, 6, 14, -1, 8, 11, 10, -1,<br />

10, 9, 8, -1, 13, 14, 11, -1, 11, 8, 13, -1, 14, 13, 12, -1,<br />

12, 15, 14, -1, 9, 10, 15, -1, 15, 12, 9, -1]<br />

}<br />

}<br />

Abbildung 3.4: <strong>VRML</strong>-Quellcode für die Darstellung des mittels boolescher Operation erzeugten Objektes.<br />

Das Grundpr<strong>in</strong>zip ist dabei e<strong>in</strong>fach. Die Oberflächen e<strong>in</strong>es Objektes werden mit<br />

Hilfe von Polygonen (zum Beispiel Dreiecke oder Quadrate) beschrieben.<br />

Dazu werden über Coord<strong>in</strong>ate die sog Vertices def<strong>in</strong>iert. E<strong>in</strong> Vertex stellt e<strong>in</strong>en<br />

Eckpunkt des Objektes dar und wird mittels der XYZ-Koord<strong>in</strong>aten im Raum<br />

def<strong>in</strong>iert. Die e<strong>in</strong>zelnen Vertices werden mit e<strong>in</strong>em Komma vone<strong>in</strong>ander getrennt.<br />

Wir haben 16 Stück bei unserem Objekt.<br />

Der zweite Teil e<strong>in</strong>es IndexedFaceSet besteht aus coordIndex. Hier werden nun<br />

die Polygone gezeichnet, <strong>in</strong> unserem Fall Dreiecke. Mittels e<strong>in</strong>er Index-Angabe,<br />

bezieht man sich auf die zuvor def<strong>in</strong>ierten Eckpunkte des Objektes. Die Indizes<br />

gehen <strong>in</strong> unserem Beispiel mit den 16 Eckpunkten daher von 0-15.<br />

Mit dem zuerst genannten Eckpunkt wird begonnen. Von dort wird e<strong>in</strong>e<br />

Verb<strong>in</strong>dung zu dem zweit genannten Eckpunkt gezeichnet usw. Das Ende e<strong>in</strong>es<br />

Polygons wird Mittels der Index-Angabe "-1" markiert. Danach wird der letzte<br />

Eckpunkt mit dem Ersten verbunden und das nächste Polygon begonnen.<br />

Mit Hilfe dieser Technik können praktisch beliebig komplexe Objekte <strong>in</strong> <strong>VRML</strong><br />

dargestellt werden.<br />

15


4. Vorbereitung zur Modellierung des Gebäudes 051<br />

Durch Dr. Krieger erhielt ich e<strong>in</strong>e Reihe von Bauplänen des Gebäudes 051 <strong>in</strong><br />

elektronischer Form. Darunter befanden sich Grundrisspläne der e<strong>in</strong>zelnen<br />

Ebenen im WMF-Format (siehe Abbildung 4.1) und auch Ansätze für e<strong>in</strong> dreidimensionales<br />

Modell im DXF- und DWG-Format.<br />

Abbildung 4.1: Erdgeschoss des Gebäudes 051.<br />

Beim W<strong>in</strong>dows Metafile Format (WMF) handelt es sich um e<strong>in</strong> von Microsoft<br />

entwickelten Standard für Vektorgrafiken. Es ist daher sehr verbreitet auf der<br />

W<strong>in</strong>dows-Plattform und wird dort zum Austausch zwischen Programmen oftmals<br />

verwendet. Außerhalb der W<strong>in</strong>dows-Plattform f<strong>in</strong>det das Format allerd<strong>in</strong>gs wenig<br />

Verwendung.<br />

Bei dem AutoCAD Draw<strong>in</strong>g Exchange Format (DXF) handelt es sich um e<strong>in</strong><br />

Format, das durch die CAD-Software AutoCAD bekannt wurde und extra<br />

entwickelt wurde, um e<strong>in</strong> Austauschformat für das <strong>in</strong>tern verwendete AutoCAD<br />

Draw<strong>in</strong>g File (DWG) zu haben. Da DWG-Dateien e<strong>in</strong>ige Vorteile gegenüber<br />

DXF haben, wird mehr und mehr als Austauschformat direkt das DWG Format<br />

bevorzugt [24].<br />

Mit dem dreidimensionalen Modell (Abbildung 4.2) konnte ich leider nicht viel<br />

anfangen, denn die Innenraummodellierung fehlte komplett. Die Datei hätte<br />

außerdem auch von der Außenmodellierung noch nachbearbeitet werden müssen.<br />

E<strong>in</strong> Probeweiser Export nach <strong>VRML</strong> ergab, dass die Außenwände des Gebäudes<br />

Probleme machten und sie nicht sichtbar waren.<br />

16


Abbildung 4.2: Dreidimensionales Modell des Gebäudes 051 mit fehlender Innenraummodellierung.<br />

Deutlich erkennbar an der Außenmodellierung die Notwendigkeit der Nachbearbeitung.<br />

Es erschien mir daher deutlich e<strong>in</strong>facher auf Basis der Grundrisspläne e<strong>in</strong> speziell<br />

für <strong>VRML</strong> optimiertes Modell zu erstellen.<br />

4.1 Prüfen der Grundrisspläne<br />

Zu allererst prüfte ich, ob ich mittels Extrudieren <strong>in</strong> 3D Studio Max (siehe<br />

Abbildung 4.3), die vorhandenen Grundrisspläne <strong>in</strong> der dritten Dimension<br />

erweitern konnte. Dazu wandelte ich die WMF-Datei erst e<strong>in</strong>mal <strong>in</strong> e<strong>in</strong>e DXF-<br />

Datei um, damit ich sie <strong>in</strong> 3D Studio Max importieren konnte. Ich benutzte dazu<br />

AutoCAD Light für W<strong>in</strong>dows, e<strong>in</strong> 2D CAD-Programm.<br />

Abbildung 4.3: Pr<strong>in</strong>zip des Extrudierens <strong>in</strong> 3D Studio. Aus e<strong>in</strong>em geschlossenen Polygonzug kann<br />

mittels Modify/Mesh Edit<strong>in</strong>g/Face Extrude das zweidimensionale Objekt leicht um die dritte<br />

Dimension erweitert werden.<br />

17


Das Extrudieren erwies sich als recht knifflig, da die L<strong>in</strong>ien oftmals nicht als<br />

geschlossene Polygonzüge anerkannt wurden. Gerade bei Fenstern und Türen<br />

erwies sich das als kompliziert.<br />

Das Aus für diese Methode kam allerd<strong>in</strong>gs aus e<strong>in</strong>em anderen Grund. Mir fiel<br />

nämlich auf, dass die Grundrisspläne an e<strong>in</strong>igen Stellen vom jetzigen Gebäude<br />

abwichen. Als ich mich entschloss an e<strong>in</strong>igen Stellen selbst nachzumessen, stellte<br />

sich heraus, dass entweder die Grundrisspläne relativ grob waren und z.B. die<br />

Dicke der Mauern nicht genau erfassten oder im Lauf der Jahre es e<strong>in</strong>ige bauliche<br />

Veränderungen gegeben haben musste.<br />

Ich entschloss mich, den Plan an den entsprechenden Stellen zu korrigieren und<br />

begann probeweise dort direkt Mauern zu konstruieren. Ich erzeugte die Mauern<br />

mittels der Box-Funktion und stellte die Dimensionen (Mauerdicke etc.) direkt bei<br />

der Erzeugung per Tastatur e<strong>in</strong>. Das funktionierte so gut, dass ich mich<br />

entschloss, auf diese Weise den ganzen Grundriss nachzubauen.<br />

18


5. Modellierung <strong>in</strong> 3D Studio Max<br />

Nachdem ich nun die Methode gefunden hatte, wie ich die Grundrisse umsetzen<br />

konnte, begann ich damit das Erdgeschoss zu modellieren. Das kostete e<strong>in</strong>iges an<br />

Zeit, mit steigender Rout<strong>in</strong>e g<strong>in</strong>g die Arbeit aber immer besser voran, bis ich den<br />

Grundriss soweit fertig hatte, um <strong>in</strong> die Mauern Öffnungen für die Türen und<br />

Fenster zu <strong>in</strong>tegrieren.<br />

5.1 Fenster und Türen<br />

Abbildung 5.1: Erzeugen von Tür- und Fensterrahmen mittels boolescher Operation.<br />

Nachdem ich die Höhe der Fenster und Türen im Gebäude nachgemessen hatte,<br />

da diese Informationen <strong>in</strong> den Grundrissen fehlten, machte ich mich daran, die<br />

Öffnungen mittels boolescher Operation (siehe Abbildung 5.1) <strong>in</strong> den Mauern zu<br />

erzeugen.<br />

Das erforderte e<strong>in</strong>iges an Aufwand, da es sich um sehr viele Türen und Fenster<br />

handelte. Ich fertige mir dazu quasi Stempelwerkzeuge <strong>in</strong> den passenden Formen<br />

an, um rasch voran zu kommen.<br />

19


Abbildung 5.2: Erdgeschoss mit Tür- und Fensterrahmen.<br />

Nachdem nun die Tür- und Fensterrahmen vorhanden waren (Abbildung 5.2),<br />

überlegte ich ob ich Fenster und Türen e<strong>in</strong>setzen sollte. Die Geschw<strong>in</strong>digkeit der<br />

<strong>VRML</strong>-Darstellung war allerd<strong>in</strong>gs bereits spürbar langsamer geworden. Daher<br />

entschloss ich mich, nur die Türen e<strong>in</strong>zusetzen und die Fenster draußen zu lassen.<br />

Abbildung 5.3: Öffnende Tür bei Testgebäude. Realisiert über e<strong>in</strong>en TouchSensor und Objekrotation.<br />

Um das Modell <strong>in</strong>teraktiver zu gestalten, wollte ich Türen im Gebäude realisieren,<br />

die sich öffnen. Sobald man mit der Maus die Türkl<strong>in</strong>ke drückt sollte die Tür<br />

aufschw<strong>in</strong>gen. Ich versuchte das erst e<strong>in</strong>mal bei me<strong>in</strong>em Testgebäude aus Kapitel<br />

3. Die Realisierung war recht e<strong>in</strong>fach. Ich erzeugte die Animation für die Tür.<br />

Danach rotierte ich sie um den auf die Kante (wo die Türangeln sitzen würden)<br />

verschobenen Schwerpunkt. Abschließend wählte ich bei den <strong>VRML</strong>-Optionen <strong>in</strong><br />

3D Studio den TouchSensor an, selektierte das auslösende Objekt (die Türkl<strong>in</strong>ke)<br />

und dann den Gegenstand, der darauf die Aktion durchführen sollte (die sich<br />

öffnende Tür). Das Ergebnis sieht man <strong>in</strong> Abbildung 5.3.<br />

20


Nachdem der Test erfolgreich verlaufen war, machte ich mich daran e<strong>in</strong>en etwas<br />

schöneren, aber trotzdem möglichst simplen Türgriff zu entwerfen. Ich stattete die<br />

Tür ebenfalls mit Animation und TouchSensor aus, duplizierte sie und baute sie <strong>in</strong><br />

sämtliche Türrahmen e<strong>in</strong> (Abbildung 5.4).<br />

5.2 Info-Objekt mit Anchor<br />

Abbildung 5.4: Fertige, <strong>in</strong>teraktive Tür für das Gebäude 051<br />

Als Nächstes machte ich mich daran, e<strong>in</strong>e Möglichkeit zu f<strong>in</strong>den, wie ich<br />

Informationen mit dem jeweiligen Raum verknüpfen konnte. Also das Anbr<strong>in</strong>gen<br />

e<strong>in</strong>es Anchors, der auf mehr Informationen über den jeweiligen Raum verweist.<br />

Als e<strong>in</strong>fachste und effektivste Möglichkeit erschien mir, im Raum selbst e<strong>in</strong><br />

Objekt anzubr<strong>in</strong>gen, was als Informations-Objekt leicht erkannt wird und woran<br />

jeweils e<strong>in</strong> Verweis auf e<strong>in</strong>e HTML-Seite angebracht werden kann.<br />

Abbildung 5.5: E<strong>in</strong>e Kugel mit Textur überzogen bildet das Informations-<br />

objekt h<strong>in</strong>ter dem sich e<strong>in</strong> Anchor verbirgt.<br />

21


Ich wählte dazu e<strong>in</strong>e e<strong>in</strong>fache Kugel und überzog sie mit e<strong>in</strong>er Textur, die aus<br />

e<strong>in</strong>er Bitmap-Grafik mit dem Text<strong>in</strong>halt "Info" bestand. Durch Anklicken dieser<br />

Kugel wird die verl<strong>in</strong>kte HTML-Seite aufgerufen. Das E<strong>in</strong>fügen e<strong>in</strong>es Anchors <strong>in</strong><br />

3D Studio Max ist dabei recht e<strong>in</strong>fach. Man wählt unter "Helpers" lediglich die<br />

<strong>VRML</strong>97 Tools aus und fügt e<strong>in</strong>en Anchor <strong>in</strong> die Szene e<strong>in</strong>. Für diesen Anchor<br />

wählt man nun noch das Objekt (Pick Trigger Object) und die Aktion, die<br />

ausgeführt werden soll, <strong>in</strong> unserem Fall der Aufruf e<strong>in</strong>er HTML-Seite. Alternativ<br />

kann man hier auch e<strong>in</strong>en Perspektivenwechsel als Aktion angeben.<br />

Sobald die Anchors e<strong>in</strong>mal erstellt s<strong>in</strong>d kann man die Änderungen der URLs, also<br />

die Pflege der Datei, auch direkt über die <strong>VRML</strong>-Datei selbst machen. Da es sich<br />

bei <strong>VRML</strong>-Dateien um re<strong>in</strong>e Textdateien handelt, kann man auch direkt im<br />

Quelltext e<strong>in</strong>e geänderte URL zum Beispiel per Suchen und Ersetzen auf den<br />

aktuellen Stand br<strong>in</strong>gen.<br />

5.3 Textur für den Boden<br />

Um das Modell etwas realistischer zu gestalten, legte ich noch e<strong>in</strong>e Textur über<br />

den Boden. Es stellte sich heraus, dass das Anbr<strong>in</strong>gen von Texturen e<strong>in</strong>iges an<br />

Experimentieren und Zeit erfordert, um sie an die Objekte anzupassen. Was bei<br />

Abbildung 5.6: Bodentextur <strong>in</strong> 3D Studio Max.<br />

e<strong>in</strong>fachen Objekten recht gut geht, wird bei komplexen Objekten rasch sehr<br />

schwierig. H<strong>in</strong>zu kam, dass die Texturen <strong>in</strong> 3D Studio Max (Abbildung 5.6)<br />

anders aussahen, wie beim Export nach <strong>VRML</strong>. So ersche<strong>in</strong>t im 3D Studio Max<br />

Modell die Textur zu kle<strong>in</strong> gekachelt, im <strong>VRML</strong> Modell hat sie dann aber die<br />

richtige Größe (Abbildung 5.7).<br />

22


Abbildung 5.7: Bodentextur <strong>in</strong> der <strong>VRML</strong>-Darstellung.<br />

5.4 E<strong>in</strong>bau des benutzbaren Fahrstuhls<br />

Um noch mehr <strong>Interaktiv</strong>ität <strong>in</strong> das Modell zu <strong>in</strong>tegrieren bildete ich den<br />

Fahrstuhl nach, um vom Erdgeschoss <strong>in</strong> den ersten Stock fahren zu können. Die<br />

Schiebetüren öffnen sich beim Anklicken. Durch e<strong>in</strong>en kle<strong>in</strong>en Schalter, der mit<br />

"Up" bezeichnet ist, kann man mit dem Fahrstuhl nach oben fahren.<br />

Abbildung 5.8: Fahrstuhl um <strong>in</strong> den ersten Stock zu fahren.<br />

23


5.5 Zusammensetzung des Modells<br />

Ich konstruierte nun nache<strong>in</strong>ander die anderen Ebenen des Gebäudes 051, wobei<br />

sich das Dachgeschoss (Abbildung 5.9) mit den vielen Fenstern und der Integration<br />

des Daches als schwierig erwies, was auch sehr stark bei dem <strong>VRML</strong>-<br />

Modell auf die Darstellungsgeschw<strong>in</strong>digkeit E<strong>in</strong>fluss hatte.<br />

Abbildung 5.9: Erster und zweiter Stock, darunter das Dachgeschoss ohne Dach.<br />

Der erste und zweite Stock (Abbildung 5.9) machte dagegen weniger Probleme,<br />

da sie beide mit dem Erdgeschoss relativ identisch waren.<br />

Ich versah nun die weiteren Ebenen mit den sich öffnenden Türen und Info-<br />

Objekten, wobei ich nur e<strong>in</strong> paar der Info-Objekte mit e<strong>in</strong>er HTML-Seite<br />

verknüpfte. In erster L<strong>in</strong>ie die Büros der Professoren, die dann zu dem jeweiligen<br />

Lehrstuhl führen.<br />

Die e<strong>in</strong>zelnen Info-Objekte können aber leicht im Quelltext gefunden und mit<br />

URLs versehen werden, da jedes die Raumbezeichnung als Namen enthält. Zum<br />

Beispiel "Info 05102024" ist Gebäude 051 Stock 02 Raum 024.<br />

24


Zum Schluss setzte ich nun alle Ebenen als komplettes Modell zusammen<br />

(Abbildung 5.10), versah die Welt mit verschiedenen Kameraperspektiven, die<br />

e<strong>in</strong>en direkt zu wichtigen Punkten <strong>in</strong> das Gebäude br<strong>in</strong>gen können, zum Beispiel<br />

zu den drei Haupte<strong>in</strong>gängen.<br />

Dann exportierte ich nach <strong>VRML</strong> und erzeugte zwei f<strong>in</strong>ale Varianten, e<strong>in</strong> Modell<br />

ohne Dach, was etwas schneller <strong>in</strong> der Darstellung ist und e<strong>in</strong> Modell mit Dach<br />

(Abbildung 5.11).<br />

5.6 Fazit<br />

Abbildung 5.10: Modelle ohne und mit Dach <strong>in</strong> 3D Studio Max.<br />

Abbildung 5.11: F<strong>in</strong>alen <strong>VRML</strong>-Modelle.<br />

<strong>VRML</strong> bietet e<strong>in</strong>e Reihe von Möglichkeiten zur Realisierung e<strong>in</strong>er <strong>in</strong>teraktiv<br />

begehbaren Welt, wie sich an dem Gebäudemodell zeigte. Durch H<strong>in</strong>zufügen<br />

weitere Details wie Texturen für die Wände und Ausarbeiten der Innene<strong>in</strong>richtung<br />

e<strong>in</strong>zelner Räume, könnte man das Gebäude noch realistischer gestalten.<br />

25


Allerd<strong>in</strong>gs zeigte sich auch, dass das Modellieren komplexer Szenen e<strong>in</strong>iges an<br />

Zeitaufwand mit sich br<strong>in</strong>gt.<br />

Die Verb<strong>in</strong>dung zwischen der dreidimensionalen Welt und anderen Ressourcen,<br />

die weiterführende Information bieten, funktioniert soweit problemlos. Hier<strong>in</strong><br />

liegt auch e<strong>in</strong>deutig die Stärke von <strong>VRML</strong>. Man kann trotz Benutzung e<strong>in</strong>er<br />

dreidimensionalen Welt wie gewohnt auf andere Dokumente verweisen. Für<br />

Anwendungen die <strong>in</strong> Richtung von Web-Museen, Architektur-Projekten und<br />

ähnlichem gehen, e<strong>in</strong>e sicher <strong>in</strong>teressante Möglichkeit Wissen zu vermitteln. Die<br />

Informationen werden durch die dreidimensionale Darstellung für den Benutzer<br />

greifbarer.<br />

Komplizierter wird es schon, wenn man nun konkrete Anwendungen im<br />

Informatik-Bereich sucht. Oftmals reichen hier zweidimensionale Darstellungen<br />

aus und s<strong>in</strong>d sogar deutlich effizienter als die Benutzung e<strong>in</strong>er dreidimensionalen<br />

Darstellung. Anwendungsgebiete können sich also nur dort erschließen, wo die<br />

zweidimensionale Darstellung nicht ausreichend ist oder e<strong>in</strong>e dreidimensionale<br />

Darstellung entscheidende Vorteile bietet.<br />

Zur Verdeutlichung der <strong>Studienarbeit</strong> sollte man sich die <strong>VRML</strong>-Modelle auf der<br />

zugehörenden HTML-Seite unbed<strong>in</strong>gt e<strong>in</strong>mal selbst betrachten. Die zweidimensionalen<br />

Bilder können davon nur e<strong>in</strong>en begrenzten E<strong>in</strong>druck vermitteln.<br />

26


Literaturverzeichnis<br />

[1] Hartman, J. u. J. Wernecke: The <strong>VRML</strong> 2.0 Handbook.<br />

Addison Wesley, 1996.<br />

[2] Web3D Consortium: http://www.web3d.org<br />

[3] <strong>VRML</strong> Architecture Group: http://www.web3d.org/vag/<br />

[4] History of the <strong>VRML</strong> Specification:<br />

http://www.web3d.org/aboutus/historyspec.htm<br />

[5] Paper: Sun Microsystems jo<strong>in</strong>s <strong>VRML</strong> Consortium to promote compatibility<br />

between <strong>VRML</strong> and Java 3D API. Sun Microsystems Press Contact, 1998.<br />

http://www.web3d.org/consort/sun98.html<br />

[6] Jahrmann, Margarete: Von <strong>VRML</strong>97 zu Web3D. Telepolis, 1999<br />

http://www.heise.de/tp/deutsch/pop/topic_3/3357/1.html<br />

[7] <strong>VRML</strong>'99 Workshop: <strong>VRML</strong> NG - <strong>VRML</strong> NextGeneration.<br />

http://www.c-lab.de/vrml99/workshop.html<br />

[8] X3D: Frequently Asked Questions (FAQ).<br />

http://www.web3d.org/TaskGroups/x3d/faq/<br />

[9] Xj3D Open Source Browser:<br />

http://www.web3d.org/TaskGroups/source/xj3d.html<br />

[10] The Web3D Repository: Browsers and Plug-<strong>in</strong>s.<br />

http://www.web3d.org/vrml/browpi.htm<br />

[11] Cosmo-Player:<br />

http://www.cai.com/cosmo/<br />

[12] Viveka's Cosmo Player Mirror:<br />

http://www.karmanaut.com/cosmo/player/<br />

[13] Blaxxun Contact:<br />

http://www.blaxxun.de<br />

[14] Cortona <strong>VRML</strong> Client:<br />

http://www.parallelgraphics.com/products/cortona/<br />

[15] Open<strong>VRML</strong> - Lookat Viewer<br />

http://openvrml.sourceforge.net<br />

[16] Web3D Creation Tools:<br />

http://www.web3d.org/vrml/wb31.htm<br />

27


[17] W<strong>in</strong>Place, 2D and 3D model<strong>in</strong>g tool:<br />

http://www.vb<strong>in</strong>formation.com/w<strong>in</strong>place.htm<br />

[18] AC3D - 3D Graphics Modeller:<br />

http://www.ac3d.org<br />

[19] Softimage 3D<br />

http://www.softimage.com<br />

[20] 3D Studio Max<br />

http://www.discreet.com/products/3dsmax/<br />

[21] Caligari TrueSpace<br />

http://www.caligari.com/<br />

[22] Maxon C<strong>in</strong>ema 4D XL<br />

http://www.maxon.net/<br />

[23] Ruff, B. und G. Bodio: Softimage 3D Design Guide.<br />

Coriolis Group Books, 1998.<br />

[24] OpenDWG Alliance:<br />

http://www.opendwg.org/<br />

28

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!