Inhaltsverzeichnisproject.informatik.uni-osnabrueck.de/cgp/homepage/aufgabe/CGP2006.pdf ·...

50
Inhaltsverzeichnis 1. Einleitung ........................................................................................................................ 2 2. Modellierung in SketchUp ................................................................................................... 2 2.1. SketchUp - wozu ist das gut? ..................................................................................... 2 2.2. Anmerkungen zur Konfiguration ................................................................................ 2 2.3. Benutzung ............................................................................................................. 2 2.3.1. Konstruktionslinien und -punkte ...................................................................... 2 2.3.2. Komponenten und Gruppen ............................................................................ 3 2.3.3. Arbeiten mit Texturen .................................................................................... 3 2.3.4. Kreise aus Zylindern ausschneiden ................................................................... 5 2.4. Modellierte Gebäude ................................................................................................ 7 2.4.1. Heger Tor .................................................................................................... 7 2.4.2. Rathaus ....................................................................................................... 8 3. Fotos und Texturierung ...................................................................................................... 10 3.1. Fotografieren der Innenstadt ..................................................................................... 10 3.1.1. Aufgabenstellung ......................................................................................... 10 3.1.2. Ausrüstung ................................................................................................. 10 3.1.3. Probleme und Lösungsmöglichkeiten ............................................................... 11 3.1.4. Umfang der Arbeit ....................................................................................... 11 3.2. Nachbearbeitung .................................................................................................... 11 3.2.1. Die wichtigsten Werkzeuge ........................................................................... 12 3.2.2. Typische Aufgaben ...................................................................................... 19 3.3. Texturgröße .......................................................................................................... 21 3.4. Textur vs. Geometrie .............................................................................................. 21 3.5. Texturieren in SketchUp .......................................................................................... 22 3.5.1. Texturen einbinden ...................................................................................... 22 3.5.2. Weitere Tools ............................................................................................. 23 3.5.3. Simuliertes Multitexturing ............................................................................. 23 3.5.4. Simuliertes Alpha-Mapping ........................................................................... 24 4. Export nach Google Earth .................................................................................................. 25 4.1. SketchUp .............................................................................................................. 26 4.2. Google Earth ......................................................................................................... 26 4.3. 3D-Modelle nach Google Earth Exportieren ................................................................ 26 4.3.1. Gebäude positionieren .................................................................................. 26 4.3.2. Exportfunktionen nutzen ............................................................................... 27 4.3.3. Betrachtung ................................................................................................ 29 4.4. Probleme beim Export ............................................................................................. 29 4.4.1. Darstellung von Rückseiten ........................................................................... 30 4.4.2. Fehler beim Export der Geometrie .................................................................. 30 4.5. Ergebnis ............................................................................................................... 31 4.6. Fazit .................................................................................................................... 32 4.7. Gallerie ................................................................................................................ 33 5. VRML Präsentation .......................................................................................................... 34 5.1. Arbeiten mit Sketchup ............................................................................................. 35 5.2. Export nach VRML ................................................................................................ 35 5.3. VRML ................................................................................................................. 36 5.3.1. Konfigurationen der wrl-Datei nach dem Export ................................................ 37 5.3.2. Probleme mit der Darstellung in der VRML-Welt .............................................. 39 5.4. Fazit .................................................................................................................... 41 6. Flash-Walkthroughs .......................................................................................................... 42 6.1. Planung des Rundganges ......................................................................................... 42 6.2. Animationen in SketchUp ........................................................................................ 43 6.3. Erweitern von SketchUp durch Ruby-Skripte ............................................................... 43 6.4. Darstellung von Animationen im Web ........................................................................ 44

Transcript of Inhaltsverzeichnisproject.informatik.uni-osnabrueck.de/cgp/homepage/aufgabe/CGP2006.pdf ·...

Inhaltsverzeichnis1. Einleitung ........................................................................................................................ 22. Modellierung in SketchUp ................................................................................................... 2

2.1. SketchUp - wozu ist das gut? ..................................................................................... 22.2. Anmerkungen zur Konfiguration ................................................................................ 22.3. Benutzung ............................................................................................................. 2

2.3.1. Konstruktionslinien und -punkte ...................................................................... 22.3.2. Komponenten und Gruppen ............................................................................ 32.3.3. Arbeiten mit Texturen .................................................................................... 32.3.4. Kreise aus Zylindern ausschneiden ................................................................... 5

2.4. Modellierte Gebäude ................................................................................................ 72.4.1. Heger Tor .................................................................................................... 72.4.2. Rathaus ....................................................................................................... 8

3. Fotos und Texturierung ......................................................................................................103.1. Fotografieren der Innenstadt .....................................................................................10

3.1.1. Aufgabenstellung .........................................................................................103.1.2. Ausrüstung .................................................................................................103.1.3. Probleme und Lösungsmöglichkeiten ...............................................................113.1.4. Umfang der Arbeit .......................................................................................11

3.2. Nachbearbeitung ....................................................................................................113.2.1. Die wichtigsten Werkzeuge ...........................................................................123.2.2. Typische Aufgaben ......................................................................................19

3.3. Texturgröße ..........................................................................................................213.4. Textur vs. Geometrie ..............................................................................................213.5. Texturieren in SketchUp ..........................................................................................22

3.5.1. Texturen einbinden ......................................................................................223.5.2. Weitere Tools .............................................................................................233.5.3. Simuliertes Multitexturing .............................................................................233.5.4. Simuliertes Alpha-Mapping ...........................................................................24

4. Export nach Google Earth ..................................................................................................254.1. SketchUp ..............................................................................................................264.2. Google Earth .........................................................................................................264.3. 3D-Modelle nach Google Earth Exportieren ................................................................26

4.3.1. Gebäude positionieren ..................................................................................264.3.2. Exportfunktionen nutzen ...............................................................................274.3.3. Betrachtung ................................................................................................29

4.4. Probleme beim Export .............................................................................................294.4.1. Darstellung von Rückseiten ...........................................................................304.4.2. Fehler beim Export der Geometrie ..................................................................30

4.5. Ergebnis ...............................................................................................................314.6. Fazit ....................................................................................................................324.7. Gallerie ................................................................................................................33

5. VRML Präsentation ..........................................................................................................345.1. Arbeiten mit Sketchup .............................................................................................355.2. Export nach VRML ................................................................................................355.3. VRML .................................................................................................................36

5.3.1. Konfigurationen der wrl-Datei nach dem Export ................................................375.3.2. Probleme mit der Darstellung in der VRML-Welt ..............................................39

5.4. Fazit ....................................................................................................................416. Flash-Walkthroughs ..........................................................................................................42

6.1. Planung des Rundganges .........................................................................................426.2. Animationen in SketchUp ........................................................................................436.3. Erweitern von SketchUp durch Ruby-Skripte ...............................................................436.4. Darstellung von Animationen im Web ........................................................................44

6.4.1. Variante mit Javascript .................................................................................456.4.2. Variante mit Flash ........................................................................................456.4.3. Gegenüberstellung von Javascript und Flash-ActionScript ...................................48

6.5. Erstellung einer Steuerkomponente mit Flash ..............................................................486.5.1. Aufbau des Programms .................................................................................496.5.2. Bewegungstweening mit Flash .......................................................................50

1. EinleitungZehn Studenten haben unter Anleitung von Prof. Dr. Oliver Vornberger im Rahmen eines dreiwöchigen Prakti-kums die Osnabrücker Altstadt dreidimensional im Computer nachmodelliert, um das Modell anschließend aufverschiedene Arten zu präsentieren.

Die Modellierung wurde mit Google Sketchup vorgenommen, in dem auch mit Adobe Photoshop nachbearbei-tete Fotos als Texturen aufgetragen wurde. Das fertige Modell wurde nach Google Earth und VRML exportiertsowie als vorgerenderte Flash-Filme angeboten.

Alle drei Präsentationsarten können auf der Homepage des Praktikums betrachtet werden:http://project.informatik.uos.de/cgp/

2. Modellierung in SketchUp

2.1. SketchUp - wozu ist das gut?

SketchUp ist eine 3D-Modellierungssoftware, mit der man sowohl einfache als auch komplizierte Strukturenerzeugen kann. Im Gegensatz zu CAD-Programmen oder 3D-Renderern wie Blender lassen sich in SketchUpObjekte recht schnell skizzieren (wie der Name schon sagt). Die Skizzen müssen dabei nicht zwangsweise frei-hand gezeichnet werden. Das Programm unterstützt einen dabei mit vielen Hilfsmitteln, so dass man auch sehrgenaue Zeichnungen und 3D-Welten erstellen kann.

2.2. Anmerkungen zur Konfiguration

SketchUp gibt es in zwei Varianten. Die eine ist frei und nennt sich Google SketchUp. Hierbei wurden schonsehr viele Programmaspekte von Google angepasst. Die von uns verwendete SketchUp 5 Pro wurde noch nichtso stark erweitert. Unter anderem fehlen hier die nützlichen Tastaturkürzel für die vielen Werkzeuge. Dadurcharbeitet man langsamer und nicht so effektiv.

Um das Problem zu beseitigen, wurden am ersten Tag des Praktikums die Kürzeleinstellungen entsprechendverändert und exportiert. Anschließend konnte man sie auf anderen Rechnern importieren.

2.3. Benutzung

In diesem Abschnitt werden einige Hinweise und Tipps zur Benutzung von SketchUp vorgestellt.

2.3.1. Konstruktionslinien und -punkte

Bei Sketchup empfielt sich die Verwendung von Konstruktionslinien. Diese sind vor allem hilfreich, wenn esdarum geht, mehrere Elemente wie z.B. Fenster in der gleichen Höhe bzw. mit konstanten Abständen auszurich-ten. Sie sind auch hilfreich bei der Verwendung verschiedener Werkzeuge, wie z.B. dem Verschieben/Kopie-ren-Tool.

Anstelle von Konstruktionslinen könnte man auch normale Linien verwenden. Diese haben jedoch den Nachteil,dass sie, wenn sie nicht mehr benötigt werden, nur schwer wieder aus dem Modell zu entfernen sind und dieses

1. Einleitung 2

andernfalls durch unnötige Kanten und Flächen aufblähen. Werden normale Linien zu Konstruktionszweckenverwendet, entstehen zudem beim Schliessen von Polygonen ggf. nicht benötigte bzw. störende Flächen.

Konstruktionslinien können parallel zu vorhandenen Kanten gezeichnet werden. Hierzu ist es erforderlich, nachAuswahl des Maßbandes zunächst irgendwo auf die vorhandene Kante zu klicken, jedoch nicht auf ihre End-punkte. Anschließend kann die zur Ausgangskante parallele Konstruktionslinie beliebig entlang von Kanten,Achsen und Flächen bewegt werden, bis sie durch einen weiteren Klick fixiert wird. Alternativ kann hier aucheine beliebige Längeneinheit eingetippt werden, die den Abstand zwischen den beiden parallelen Linien festlegt.

Geht man beim Zeichnen einer Konstruktionslinie von einem Endpunkt aus, so kann man einen Konstruktions-punkt mit einem definierten Abstand zum Ausgangspunkt erzeugen. Die Ausrichtung im Raum erfolgt hier frei-händig bzw. anhand vorhandener Linien, Flächen und Achsen.

Mit dem Winkelmesser-Tool können analog zur Verwendung des Maßbandes Konstruktionslinien in einembestimmten Winkel zur Ausgangslinie gezeichnet werden.

Beispielfür die Verwendungvon Konstruktionslinien

2.3.2. Komponenten und Gruppen

In SketchUp lassen sich Flächen und Kanten zu Gruppen und Komponenten zusammenfassen. Zu einer Gruppezusammengefasste Elemente werden immer gemeinsam ausgewählt, sobald eines ihrer Elemente ausgewähltwird. Wird die Gruppe mittels Doppelklick ausgewählt, so kann ihr Inhalt bearbeitet werden. Es besteht dieMöglichkeit, Gruppen gegen Veränderung zu sperren. Zudem können sie direkt oder über das Gliederungs-Menü ausgeblendet werden, um den Blick auf verdeckte Teile des Modells freizugeben.

Aus Gruppen können Komponenten erstellt werden. Diese können dann im Modell beliebig oft wiederverwen-det oder bei Bedarf für die Verwendung in anderen Modellen exportiert werden.

2.3.3. Arbeiten mit Texturen

Verwendung der Pipette

Auch wenn der erste Eindruck den Anschein erwecken sollte, ist die Pipette kein einfaches Werkzeug zumKopieren von Texturen mitsamt ihrer Positionierung und Skalierung. Stattdessen wird die mit der Pipette aufge-nommene Textur auf der Zielfläche fortgesetzt. Dies geschieht auch, wenn die Flächen nicht unmittelbarbenachbart sind.

Verwendung der Pipette 3

Nachfolgende Beispiele demonstrieren dieses Verhalten:

Es wurde jeweils die Textur deslinken Fenstersmit der Pipette aufgenommenund auf die übrigen über-tragen

Textur im Rundbogen

Nach dem Aufbringen einer Textur auf den Rundbogen stellt sich heraus, dass diese um 90 Grad gedreht undanders skaliert werden muss.

Textur um 90Grad verdreht und falschskaliert

Textur im Rundbogen 4

Ein Rechtsklick auf die gebogene Fläche liefert im Kontextmenü jedoch keine Option, die Position der Texturzu verändern (Menüeintrag Textur-->Position). Abhilfe lässt sich hier schaffen, indem man mit Ansicht-->AusgeblendeteGeometriedie einzelnen ebenen Teilflächen des Rundbogens anzeigen lässt.

Textur auf einemBogensegmentpassendpositioniert

Nun lässt sich die Textur auf eine dieser Teilflächen aufbringen und positionieren. Anschließend kann sie mitHilfe der Pipette auf alle übrigen Flächen übertragen werden. Nachdem die Unterteilung in die Teilflächen wie-der ausgeblendet wird, ist eine durchgehende Textur zu erkennen.

Textur auf dengesamtenBogenübertragen

2.3.4. Kreise aus Zylindern ausschneiden

Zylinder sind für den Betrachter zunächst nicht sichtbar aus rechteckigen Flächensegmenten zusammengesetzt.Soll nun in einen Zylinder (Turm) ein kreisförmiges Loch (Fenster) geschnitten werden, so ergibt sich ein Pro-blem, sobald der Durchmesser des Kreises die Breite des Flächensegmentes überschreitet: entweder berührt derKreis zwei benachbarte Flächensegmente und liegt dabei komplett innerhalb des Zylinders; oder er liegt tangen-tial zu dem einen Flächensegment, und die äußeren Punkte des Kreises liegen außerhalb des Zylinders.

Textur im Rundbogen 5

Zylinder mit einemKreis

Zylinder mit einemKreis: Blick von oben

Das Problem lässt sich dadurch beheben, dass man auf die benachbarten Flächensegmente Bögen zeichnet, dieden gleichen Radius wie der Kreis haben. Da die Bögen wirklich koplanar zu dem jeweiligen Flächensegmentliegen, lassen sie sich problemlos ausschneiden. Das komplette Loch ist geometrisch keine echte Kreisprojekti-on, approximiert diese aber sehr gut.

Eine korrekte Kreisprojektion erreicht man dadurch, dass man mit dem Drücken/Ziehen-Werkzeug aus demKreis einen zweiten Zylinder erzeugt, der den ursprünglichen schneidet.

Zylinder mit einemHilfszylinder

Dann wählt man diesen mit einem Dreifachklick und schneidet ihn mit dem Modell durch Rechtsklick-->MitModell verschneidenoder Bearbeiten-->MitModell verschneiden. Nun löscht man mit dem Radiergummi alleKanten bis auf die Kreisprojektion auf dem Zylindermantel.

Textur im Rundbogen 6

Äußerer Teil desHilfszylinders entfernt

Zuletzt löscht man noch die projizierte Kreisfläche und die restlichen Kanten des Hilfszylinders im Inneren desModells, und man erhält einen Zylinder mit einer runden Öffnung.

Zylinder mit einer runden Öffnung

2.4. Modellierte Gebäude

2.4.1. Heger Tor

Vom Heger Tor lagen uns keine Grundriss- und Höhendaten vor. Eine Ermittlung der Geometrie mit Hilfe deshochaufgelösten Luftbildes war aufgrund umfangreicher Vegetation nur sehr eingeschränkt möglich. Da diesesBauwerk jedoch prägend für die Osnabrücker Altstadt ist, entschieden wir uns, es dennoch nachzubauen.

Die Konstruktion unseres Modells erfolgte daher überwiegend auf Basis von Fotos und vor Ort angefertigterSkizzen. Da das Bauwerk unmittelbar in benachbarte Gebäude übergeht, wurden diese ebenfalls modelliert, sodass ein abgeschlossener Häuserblock entstanden ist. Es wurden Besucherplattform und Treppen nachgebildet,so dass eine Begehung im Rahmen eines virtuellen Stadtrundgangs (VRML/Flash) möglich wird. Das Heger

Textur im Rundbogen 7

Tor wurde überwiegend mit Originaltexturen/Fotos belegt, wobei einige Merkmale wir z.B. die Säulen plastischhervorgehoben wurden. An den angrenzenden Gebäuden wurden je nach Situation einzelne Texturen auf einekonstruierte Fassade gelegt oder aus einer einzigen Textur bestehende Fassaden verwendet. Anfangs ergabensich Probleme beim Platzieren der Textur im Rundbogen des Tores (siehe Abschnitt "Arbeiten mit Texturen").

Von der Vegetation wurden lediglich die 13 in unmittelbarer Nähe des Heger Tores befindlichen Bäume ange-deutet. Zunächst wurden hochdetaillierte Bäume verwendet, die Sketchup als Komponente (Espe) anbietet.Hierbei stellte sich jedoch heraus, dass die Komplexität (Anzahl der Kanten und Flächen) der Szene dramatischzunimmt. Abhilfe ließ sich durch einen vereinfachten Baum, bestehend aus einem Zylinder als Stamm undeinem kugelähnlichen Polygon als Krone, schaffen.

Hier ein paar Zahlen:

Objekt Kanten Flächen

Espe aus Sketchup 19730 3313vereinfachter Baum 132 57

gesamtes Modell (mit vereinfachtenBäumen)

5107 2083

Ansicht der Rückseite

Grundriss

2.4.2. Rathaus

Textur im Rundbogen 8

Als einem der wichtigsten Bauwerke der Stadt musste dem Rathaus natürlich viel Aufmerksamkeit geschenktwerden. Insbesondere war es notwendig, die Dachtürme und die Treppe in Geometrie nachzubauen und nichtnur als Textur auf ein Rechteck zu kleben. Dazu musste u.a. die Rathaustreppe vor Ort komplett vermessen wer-den.

Hier ein paar Zahlen:

Objekt Kanten Flächen

Rathausgesamt 18845 7292Dachturm 1652 686

Treppe 1134 446Ratskellertür Krahnstraße 968 341

Textur im Rundbogen 9

Ratskellertür an der Krahnstraße

3. Fotos und TexturierungEin Drahtgittermodell ist langweilig und auch etwas unübersichtlich. Also mussten Texturen her. Die Texturenwurden aus Fotomaterial erstellt, das gleichzeitig auch dazu diente, den Modellierern einen Anhaltspunkt überdas Aussehen der Gebäude zu geben.

3.1. Fotografieren der Innenstadt

3.1.1. Aufgabenstellung

Um eine Stadt nachmodellieren zu können, muss man natürlich wissen, wie sie aussieht. Das bedeutet, manmuss sich einen Überblick über die Anordnung der Häuser verschaffen, über deren Größen und Detailreichtum.Außerdem lässt sich an vielen Stellen die Arbeit sparen, indem man Fotos als Texturen verwendet. Die Texturenkönnen dabei sehr unterschiedlich ausfallen. Mal sind es ganze Fassaden, mal einzelne Fenster oder auch Zie-gelsteine. Des weiteren können in der VRML-Welt die Fotos als Hintergrund oder als Weltbegrenzung fungie-ren.

3.1.2. Ausrüstung

Es wurden zwei digitale 4-Megapixel-Kameras verwendet: Panasonic Lumix DMC-FZ10 und Canon PowerShotS40. Dabei kam hauptsächlich der erste Fotoapparat zum Einsatz, da er mehrere Vorteile gegenüber der kom-pakten PowerShot vorzuweisen hatte.

Das wichtigste Merkmal ist der optische 12-fach-Zoom. Damit lassen sich nah liegende und sehr weit entfernteObjekte gleichermaßen fotografieren. In unserem Fall war dies von immensem Nutzen:

• Kleine Verzierungen an den Giebeln, Dachspitzen und ähnliches lassen sich gut auflösen;• Im Gegensatz zu einer Spiegelreflexkamera kommt man mit einem Objektiv aus und kann so recht schnell

zwischen Weitwinkel- und Telefotografie wechseln.

Bei extremen Telefotos kam auch der optische Bildstabilisator zum Tragen, der das Bild halbwegs stabil gehal-ten hat. Sonst wäre ein Stativ unabdingbar gewesen, um keine stark verschwommenen Fotos zu riskieren.

3. Fotos und Texturierung 10

3.1.3. Probleme und Lösungsmöglichkeiten

Die Außenfotografie stellt einen Fotografen vor einige Probleme. Zum einen sind die Lichtverhältnisse von derTageszeit, dem Wetter, dem Ort und der Umgebung abhängig. Unter anderem können bei sonnigem Wetter har-te Schatten starke Farbunterschiede verursachen. Außerdem können Spiegelungen an Fensterscheiben dieKamera "blenden". Zum anderen gibt es bewegliche und statische Hindernisse. Dazu gehören Menschen, Tiere,Autos, Fahrräder, Bäume, Laternen usw. Diese lassen sich nicht immer vor Ort aus dem Bild entfernen, so dassman die entsprechenden Fotos später digital nachbearbeiten muss.

Die Geometrie der Gassen sowie Dimensionen der Gebäude lassen oft auch keine optimalen Ergebnisse zu. Isteine Straße zu eng, so passt das Objekt nicht komplett ins Bild. Dann versucht man das entweder mit einerWeitwinkeleinstellung zu kompensieren, macht mehrere Fotos und klebt sie später zusammen oder schießt sievon der Seite. In jedem Fall müssen die Bilder nachbearbeitet werden, was unter Umständen zu einem deutli-chen Qualitätsverlust führen kann.

Und nicht zuletzt machte das Wetter den Fotografen zu schaffen. Einige Tage war es sonnig und heiß, die ande-ren windig und regnerisch. Dadurch wurde die Kamera heiß bzw. es landeten viele Wassertropfen auf der Linse,was die Arbeit zusätzlich verlangsamt hat.

3.1.4. Umfang der Arbeit

Die Architektur der Häuser variiert je nach Epoche. Fachwerkhäuser sind meist sehr bunt gestaltet und beinhal-ten viele Details. Moderne Bauten sehen dagegen recht einfach aus.

Vergleich zwischenFachwerkhausund einemHausmodernerer Bauweise

Als Faustregel lässt sich also festhalten, dass die Komplexität der Gebäudearchitektur mit dem Alter zunimmt.Hinzu kommen besonders große oder wichtige Bauwerke wie z.B. die Marienkirche oder das Rathaus, wo vieleKleinigkeiten wirklich nachmodelliert werden.

So haben wir für den Marktplatz allein 595 Bilder geschossen, davon 223 von der Marienkirche, 97 vom Rat-haus und 73 von der Stadtwaage, d.h. ungefähr 2/3 der Fotos entfallen auf diese drei Gebäude. Insgesamt wur-den 2823 Aufnahmen in 10 Tagen gemacht. Der Platzbedarf liegt in etwa bei 2,2 GB.

3.2. Nachbearbeitung

Um die aufgenommenen Fotos im 3D Modell als Texturen verwenden zu können, mussten die meisten Aufnah-men mit Adobe Photoshop 6 nachbearbeitet werden. Wie zeitaufwändig die Bearbeitung ausfiel, hing vom Ver-wendungszweck der Textur und der "Qualität" des Fotos ab. Mit Qualität ist hier nicht unbedingt die Bildquali-tät gemeint, sondern vielmehr, wieviel in dem Bild "störte" (Objekte im Weg, zu dunkel, falsche Perspektive,usw.).

Es wurden nicht alle Fotos intensiv bearbeitet, und bei kaum einem Foto wurden alle Werkzeuge benutzt, die

3. Fotos und Texturierung 11

hier vorgestellt werden sollen. In der Regel wurden nur zwei bis drei benutzt.

3.2.1. Die wichtigsten Werkzeuge

Photoshop bietet eine Vielzahl von Werkzeugen zur Bildbearbeitung. Die im Praktikum meistgenutzten waren

1. Kopierstempel2. Verzerren und perspektivisch Verzerren3. Ebenen und Ebenenmasken4. Nachbelichter und Abwedler5. Tonwerkorrektur6. Verschiebungseffekt7. Wölben

3.2.1.1. Kopierstempel

Da der Kopierstempel das mit Abstand meistgenutzte Werkzeug zur Bildbearbeitung im Praktikum war, möch-ten wir ihn hier etwas näher vorstellen.

Beschreibung

Der Kopierstempel ist eine Art "Copy & Paste" Stift. Um eine Hauswand, die hinter einem Baum verdeckt ist,zu rekonstruieren, reicht es selten, den Baum mit dem Pinsel und einer Farbe zu übermalen. Der Rest der Haus-wand hat (auch, wenn sie einheitlich aussieht) eine Struktur, die sich in Farbunterschieden zwischen den Pixelwiderspiegelt. Eine einheitlich eingefärbte Fläche mit genau einer Farbe sieht dann nicht so aus, als würde siezur Wand gehören. Genau um das zu umgehen, ist der Kopierstempel bestens geeignet. Mit ihm lässt sich einanderer, vollständig sichtbarer Bereich der Wand punktgenau auf den verdeckten Bereich kopieren. MitsamtStruktur.

Benutzung

Bei gedrückter Alt-Taste kann mit einem Klick das Quellgebiet definiert werden. Klickt man jetzt (ohne Alt) aufeinen anderen Bereich des Bildes, wird dorthin ein Fleck in Größe des ausgewählten Pinsels vom Quellgebiethinkopiert. Bei Bewegung des Pinsels bewegt sich auch das Quellgebiet (angezeigt durch ein kleines Kreuz)mit, sodass man schnell und einfach unregelmäßige Gebiete eines Bildes kopieren kann. Bei Absetzen des Pin-sels (loslassen der Maustaste) wird die Position des Quellgebietes relativ zum Pinsel gespeichert:

Dieses Verhalten lässt sich mit der Option Ausrichten(obere Leiste) ändern. Ist sie deaktiviert, wird zwar wei-terhin das Quellgebiet bei gedrückter Maustaste mitbewegt, nach dem Absetzen und erneutem Drücken ist esaber wieder an der Stelle, an die man es mit der Alt-Taste gesetzt hat:

Beschreibung 12

Das ist vor allem dann nützlich, wenn das Quellgebiet nur sehr klein, die abzudeckende Fläche aber groß ist.Dann lässt sich die Fläche mit vielen Pinselstrichen füllen.

Bei der Verwendung des Stempels empfiehlt es sich, einen "weichen" (also interpolierenden) Pinsel zu benut-zen, damit der Übergang an den Grenzen des kopierten Bereiches natürlich aussieht. Für scharf umgrenzteGebiete ist natürlich trotzdem ein harter Pinsel angebracht.

Übrigens müssen Quell- und Zielgebiet nicht unbedingt in dem gleichen Bild sein. Das lässt sich nutzen, wennman für eine Kacheltextur einzelne Steine ausgeschnitten hat und anschließend die Mörtellinien zwischen ihnennachziehen möchte. Man kopiert einfach die "schöneren" der Linien aus dem Original- oder einem anderen,ähnlichen Bild.

Typische Anwendungen

Oft hat man es nicht mit so einer einfachen Sache wie der oben erwähnten Hauswand zu tun. Was, wenn in dieWand ein Fenster eingelassen ist, das teilweise verdeckt ist? Die Schwierigkeit besteht hier in der Rekonstruki-on der Fensterkanten. Wenn zumindest ein Teil der Kante (vom verdeckten oder einem anderen Fenster) sicht-bar ist, kann man hier ansetzen. Man markiert die sichtbare Kante als Quellgebiet und versucht sie möglichstohne "Sprung" in den verdeckten Bereich fortzusetzen. So sollte es nicht aussehen:

Eine etwas schwierigere, aber dennoch mögliche Art der Anwendung besteht in der Rekonstruktion von Schrift-zügen. Der obere Bogen eines "f" sieht beispielsweise dem oberen Bogen eines "e" recht ähnlich. Solange mangenug sichtbare Buchstaben hat, sollte man damit jeden anderen Buchstaben einigermaßen lesbar bekommen.

3.2.1.2. Verzerren und perspektivisch Verzerren

Beschreibung

In den wenigsten Fällen war es für den Fotografen möglich, ein Gebäude wirklich frontal zu fotografieren,damit keine perspektivische Verzerrung entsteht. Diese Verzerrung lässt sich mit dem Werkzeug perspektivischVerzerrenbeseitigen. Über Anfasser lässt sich das Bild scheren und flüchtende Linien können zu Parallel ver-

Typische Anwendungen 13

zerrt werden.

Aufgrund seiner intuitiveren Bedienung sei noch das Werkzeug Verzerrenerwähnt. Damit lässt sich das Bild anallen vier Ecken "auseinanderziehen". Für kleinere Verzerrungen lassen sich hiermit meist schnellere Ergebnisseerreichen, da man einfach die Anfasser soweit ziehen kann, dass die vier Ecken des Motivs (sofern diegewünschte Textur denn rechteckig ist) mit den Ecken des Bildrahmens zusammenfallen. Für starke perspektivi-sche Verzerrungen (beispielsweise durch einen flachen Winkel beim Fotografieren) empfiehlt sich aber trotz-dem zuerst das Werkzeug perspektivischVerzerrenmit gegebenenfalls leichten Korrekturen durch Verzerren.

Benutzung

Zu finden ist perspektivischVerzerrenunter Bearbeiten->Transformieren. Sollte der Menüpunkt Transformie-ren nicht verfügbar sein, arbeiten Sie vermutlich auf der Hintergrundebene, die besonders geschützt ist. ÖffnenSie das Fenster Ebenenund doppelklicken Sie auf die Ebene mit dem Namen "Hintergrund". Wählen Sie einenNamen ("Ebene 0" reicht in den meisten Fällen) und drücken Sie Enter. Nun sollten Sie das Bild transformierenkönnen.

Es werden 8 Anfasser erscheinen (wenn nicht, sind sie vermutlich außerhalb des Sichtbereichs, einfach rauszoo-men, um sie zu finden). Vier an den Ecken, mit denen sich Fluchtpunkte beseitigen lassen und vier an den Sei-ten, mit denen sich das Bild scheren lässt.

Tipps zur Anwendung

• Um besser beurteilen zu können, ob die Linien schon gerade sind, kann man das Raster einschalten. Zu fin-den unter Ansicht->Einblendenoder mit Strg+Alt+Shift+#. Sollte das Raster schlecht sichtbar sein, kannman die Erscheinung (Farbe, Abstand der Linien) unter Bearbeiten->Voreinstellungen->Hilfslinien undRasterändern.

• Um schnell zum Ziel (einem unverzerrten Bild) zu gelangen, sollten man zuerst so scheren, dass die Linienin der Nähe der Mitte symmetrisch verzerrt sind, d.h. alle Linien links vom Mittelpunkt flüchten in eineRichtung, alle Linien rechts von ihm flüchten (unter dem gleich Winkel) in die andere Richtung. Analog fürunter/über dem Mittelpunkt. Anschließend versucht man die flüchtenden Linien mit den Anfassern in denEcken parallel zu machen. Gegebenenfalls nochmal leicht scheren, und das Bild sollte entzerrt sein.

Original:

Symmetrische Verzerrung erreichen:

Benutzung 14

Flüchtende Linien parallel machen:

3.2.1.3. Ebenen und Ebenenmasken

Beschreibung

Ebenen sind ein praktisches Konzept, um einzelne Bildteile unabhängig voneinander bearbeiten (Verzerrungen,Tonwerkorrektur, usw.) zu können.

Mit Ebenenmasken kann man Bereiche einer Ebene durchsichtig oder teilweise transparent machen, sodass dar-unterliegende Ebenen durchscheinen.

Benutzung

Im Menü Ebenen->Neu lassen sich neue Ebenen erstellen (Ebenedurch Kopie und Ebenedurch Ausschneidenbeziehen sich auf die aktuelle Auswahl). Im Ebenenfenster (das Fenster mit den Minibildchen des Ebenenin-halts) lassen sich einzelne Ebenen vor Veränderungen und Transformationen schützen und die Deckkraft ein-stellen (gut, um Ebenen übereinander zu positionieren).

Um eine Ebenenmaske zu erstellen, wählt man die Ebene an und klickt im Ebenenfenster auf das zweite Zei-chen in der unteren Leiste (ein graues Rechteck mit weißem Kreis in der Mitte). Nun wird neben dem Thumb-nail der Ebene ein weiteres Rechteck erscheinen, dass die Maske darstellt. Mit Klicken kann man zwischen Ebe-nen- und Maskenbearbeitung wechseln.

Die Ebenenmaske ist in der Voreinstellung eine einfach weiße Fläche. Färbt man Bereiche von ihr schwarz,wird die Ebene dort verdeckt (und evt. vorhandene Ebenen darunter kommen zum Vorschein). Grauschattierun-gen dazwischen ergeben einen teilweise transparenten Bereich - je dunkler, desto blasser.

Typische Anwendungen

Ebenenmaskeneignen sich hervorragend, um mehrere Fotografien zu einem Panoramabild (oder eine sehr lan-

Beschreibung 15

gen Textur für eine Geschäftszeile) zusammenzufügen. Dazu erstellt man ein neues Bild (die Pixelzahlen solltendas spätere Format widerspiegeln, bei drei zusammenzufügenden Bilder à 300 Pixel Breite und 200 Pixeln Höhesollte man also ein Bild mit 900 Pixeln Breite und 200 Pixeln Höhe erstellen) und fügt die Bausteine aus denverschiedenen Bildern dort ein. Die Teilbilder sollten standardmäßig auf unterschiedlichen Ebenen eingefügtworden sein. Gegebenenfalls sollte man noch so skalieren und verschieben (Bearbeiten-Frei transformierenoder Strg+T), dass die Bildbereich schon grob aneinanderpassen. Problematisch sind nun die Übergänge. Manmöchte einige Bereiche aus der einen Ebene behalten, andere Bereiche aus der anderen Ebene und am Bestennoch an einigen Stellen weich überblenden. Hier kommen die Masken ins Spiel. Man erstellt für alle Ebeneneine Maske und bearbeitet die Nahtstellen in ihnen. Um die Überblendung zwischen den einzelnen Bildab-schnitten zu erreichen, kann man mit verschiedenen Werkzeugen (Pinsel, Airbrush), Grauschattierungen undPinselarten (weich/hart) an den Übergangsstellen experimentieren. Für den letzten Schliff kann man noch denKopierstempel bemühen.

Eine weitere Anwendung von Ebenen und Masken sind Gebietsmarkierungen, also eingefärbte Bereiche ineinem Bild, um auf sie aufmerksam zu machen. Man erstellt eine neue Ebene mit der gewünschten Farbe, stelltdie Deckkraft nach Belieben ein und erstellt eine Maske. Alle nicht zu markierenden Bereiche werden durchBearbeitung der Maske ausgeblendet. So geschehen bei dem "Schlachtplan" unseres Projektes, welche Gebäudenoch modelliert werden müssen:

3.2.1.4. Nachbelichter und Abwedler

Beschreibung

Waren die Lichtverhältnisse zum Zeitpunkt des Fotografierens nicht ideal, lässt sich das mit dem Nachbelichterund dem Abwedlerkorrigieren. Die Begriffe stammen aus der Fotografie, wo der Nachbelichter mehr Licht aufeinen Bereich des Bildes lenkt (es wird dunkler) und der Abwedler in den Lichtweg gehalten wurde, um denentsprechenden Bereich heller zu machen.

Benutzung

Fast selbsterklärend. Um gute Ergebnisse zu erhalten, empfiehlt es sich, mit der Intensitätseinstellung am oberenBildschirmrand zu experimentieren. Die Option Bereichgibt an, welche Farbtöne von der Abdunklung / Aufhel-lung betroffen sind. Um Schatten zu entfernen, sollte man die Tiefenund ein wenig die Mitteltönebearbeiten.

Tipps zur Anwendung

In der Regel wird man diese beiden Werkzeuge dazu benutzen wollen, die Helligkeitsverteilung in einem Bildmöglichst homogen zu gestalten, d.h. dunkle Bereiche an helle anzupassen oder umgekehrt. Um ein gutesErgebnis zu erhalten, sollte man generell eher die dunklen Bereiche aufhellen, weil dort noch manchmal etwas

Beschreibung 16

Struktur versteckt ist, wohingegen in hellen Abschnitten alles überstrahlt wurde.

Möchte man eine Grenze von einem Hell-Dunkel-Übergang weniger scharf gestalten, sollte man den einenBereich mit dem Polygon-Lasso markieren, sodass man nicht mit dem Pinsel aus Versehen auch die "gute" Seiteaufhellt/abdunkelt, wodurch die Grenze nicht schwächer wird.

Sind die anzupassenden Bildbereiche groß, sollte man sie eher markieren und mit der Tonwertkorrektur bearbei-ten.

3.2.1.5. Tonwertkorrektur

Beschreibung

Mit der Tonwertkorrektur lässt sich die Farbverteilung in einem Bild verändern. Im Praktikum wurde sie mei-stens dazu verwendet, um größere Schattenbereiche aufzuhellen und Fensterspiegelungen abzudunkeln.

Benutzung

Zu finden ist die Tonwertkorrektur unter Bild->Einstellen. Meist (zumindest bei der Schattenbearbeitung) wirdman den RGB-Kanal bearbeiten wollen. Mit dem ersten Balken unter dem Spektrum lässt sich der Farbbereichverschieben und verkleinern. Mit dem mittleren Pfeil kann man die Helligkeit des Kanals bestimmen. Mit denäußeren Pfeilen kann man experimentieren, es ist aber selten nötig, sie zu verschieben. Mit ihnen lässt sich derFarbbereich anpassen (je enger zusammen, desto kontrastreicher).

Sollte der Bildbereich nach dem Anpassen der Helligkeit farblos wirken, kann man noch versuchen, das mit deneinzelnen Kanälen R(ot), G(rün) und B(lau) zu korrigieren. Sind rote Ziegelsteine zu blass und fügen sich farb-mäßig nicht gut an ihre unbearbeiteten Nachbarn an, wählt man beispielsweise den R-Kanal und verschiebt denmittleren Pfeil leicht nach links, um den Ziegelsteinen etwas mehr Rot einzuhauchen.

Tipps zur Anwendung

• Für gute Ergebnisse sollte man in der anschließenden Tonwertangleichung ein wenig bei allen Kanälenwackeln. Sollte der Schieberegler nicht fein genug sein, kann man auch Zwischenwerte in die Textfeldereingeben.

• Manchmal verhindert der Auswahlrahmen, dass man wirklich gut beurteilen kann, ob die Farbe sich gut anden Nachbarbereich anpasst. Das kann man ausräumen, indem man die Auswahlkanten kurzzeitig unterAnsicht->Einblendenausblendet.

Rechts unten ist viel zu dunkel:

Helligkeit anpassen, aber noch nicht rot genug:

Beschreibung 17

Letzter Schliff, etwas mehr Rot:

3.2.1.6. Verschiebungseffekt

Beschreibung

Dieser Filter ist weder sehr schwierig zu verstehen noch schwierig zu benutzen, er sei hier nur erwähnt, weil erim Praktikum oft benutzt wurde, um Kacheltexturen zu erstellen.

Benutzung

Der Verschiebungseffektist unter Filter->SonstigeFilter zu finden. Eine kleine Dialogbox wird erscheinen, inder man die Anzahl der Pixel, um die man verschieben möchte, angeben kann. Möchte man nach links odernach oben verschieben, kann man ein Minus voranstellen.

Wie die entstehenden leeren Flächen zu füllen sind, lässt sich angeben. Mit Hintergrundfarbeauffüllen sollteselbsterklärend sein. Kantenpixelwiederholenergibt einen verschmierten Bereich (eigentlich nur brauchbar,wenn man eine Hintergrundfarbe in dem Bereich erhalten will). Das für uns interessante ist Durch verschobenenTeil ersetzen, wodurch das, was an einem Ende aus dem Bildbereich "rausrutscht", auf der anderen Seite wiedererscheint.

Typische Anwendungen

Bei Kacheltexturen ist es wichtig, dass man die linke Seite an die rechte legen kann, ohne dass man die Naht-stelle sieht. Gleiches gilt für oben/unten. Um diese Nahtstellen zur Nachbearbeitung sichtbar zu machen, kannman den Verschiebungseffektnutzen. Mit der Option Durch verschobenenTeil ersetzensimuliert man nämlichgerade das Aneinanderlegen der Texturteile. Anschließend kann man mit verschiedenen Werkzeugen(Nachbelichter und Abwedler, Kopierstempel) die Nahtstellen verschwinden lassen.

Um einen großen Bereich zur Bearbeitung zur Verfügung zu haben, sollte man möglichst weit verschieben,idealerweise um die Hälfte der Breite/Höhe des Bildes.

3.2.1.7. Wölben

Beschreibung

Der WölbenFilter ist eigentlich nur ein Verzerrungsfilter unter vielen, kann aber zum Ausbügeln von Weitwin-

Beschreibung 18

kel-Fischaugeneffekten zweckentfremdet werden.

Benutzung

Es ist wichtig zu wissen, dass dieser Filter nur auf einem kreisförmigen Bereich, der genau in den Bildbereichpasst, arbeitet. Dieser Bereich umfasst eigentlich nie das gesamte Bild:

Damit auch die äußeren Bereiche verzerrt werden, muss das Bild vergrößert werden. Das geht am besten mitdem ZuschneidenWerkzeug (so widersprüchlich das klingt), indem man den Zuschnittsrahmen über die Bild-grenzen hinaus zieht. Man sollte dabei darauf achten, dass der Mittelpunkt des Bildes (markiert durch das einge-kreiste Kreuz) in etwa an der gleichen Stelle bleibt:

Nun lässt sich ohne Probleme der WölbenFilter, zu finden unter Filter->Verzerrungsfilter, anwenden.

Typische Anwendung

Um eine Fischaugenverzerrung loszuwerden, muss man eine negative Stärke angeben. Je nach verwendetemKameraobjektiv reichen -10% bis -20%. Die Vorschau ist nett gemeint, gibt aber leider kaum eine Vorstellungdavon, wie gerade die Linien im Bild werden. Da hilft nur Ausprobieren und Rückgängig.

3.2.2. Typische Aufgaben

Im Laufe des Praktikums kristallisierten sich 4 Standardaufgabenheraus, von denen bei eigentlich allen Bil-dern mindestens eine zu erledigen war:

1. Störende Objekte entfernen2. Entzerren des Bildes3. Störende Reflexe in Fenstern entfernen4. Kacheltexturen erstellen

Benutzung 19

3.2.2.1. Störende Objekte entfernen

Viele Häuser waren durch Bäume, Autos oder ähnliche Dinge verstellt und konnten daher nur unvollständigabgelichtet werden. Da wir diese störenden Hindernisse, wenn überhaupt, als Objekte in Sketchup eingefügthaben, war es nötig, sie von dem Foto zu entfernen, bevor das Bild als Textur verwendet werden konnte. Hierhat sich der Kopierstempel von Photoshop bewährt, sofern geeignetes Material vorhanden war, von dem mankopieren konnte. Waren kompliziertere Bereiche verdeckt (z.B. Fenster), empfahl es sich eher, einen ähnlichen,intakten Bereich von woanders einzufügen.

3.2.2.2. Entzerren des Bildes

Um perspektivische oder durch Weitwinkel verursachte Verzerrungen auszugleichen, stellt Photoshop zwei Ver-zerrungswerkzeuge zur Verfügung. PerspektivischVerzerren, was aber nicht sehr intuitiv ist und Verzerren, daswegen seiner Ähnlichkeit zum Google-Sketchup Textureninterface öfter für kleinere Verzerrungen genutzt wur-de. Eine Beschreibung beider Werkzeuge findet sich hier.

3.2.2.3. Störende Reflexe in Fenstern entfernen

Ob sich der Fotograf in der Glasfläche gespiegelt hat oder das Fenster durch eine Spiegelung des Himmels vielzu hell für eine Textur war, meistens mussten die Spiegelungen entfernt werden. Eine einheitlich eingefärbteFläche sieht unnatürlich aus, etwas Struktur muss erhalten bleiben. Das einfachste Mittel dazu ist, die Glasflä-chen zu markieren und Helligkeit und Kontrast so weit runterzudrehen, dass die Flächen fast schwarz werden,aber immernoch etwas Struktur zu erkennen war. Gegebenenfalls wurden vorher noch sehr auffällige Spiegelun-gen, wie z.B. Autos mit dem Kopierstempel entfernt.

3.2.2.4. Kacheltexturen erstellen

Da man beim besten Willen keine Straßenfläche von mehr als 2 Quadratmetern Fläche fotografieren kann, istman beim Texturieren dieser Fläche gezwungen, einen kleineren Ausschnitt immer wieder aneinanderzulegen

Typische Anwendung 20

("Tile"). An den Grenzen der Textur kommt es dabei aber zu unschönen "Nähten", sei es durch Helligkeitsunter-schiede oder die Struktur des Bildes (Mörtel zwischen Ziegelsteinen fügt sich nicht gut wieder zusammen).

Um diese Nähte zu entfernen, gab es zwei Vorgehensweise. Welche man wählt, hängt von der Struktur derOberfläche ab

• Für sehr feine Strukturen , wie z.B. Lehm oder einheitlicher Stein reicht es, den Filter Verschiebungseffektvon Photoshop zu nutzen und die dabei entstehenden Nähte mit dem Kopierstempel und einem interpolie-renden Pinsel zu entfernen.

• Hat die Textur eine grobe Struktur , die erhalten werden soll (z.B. Mörtel zwischen den Steinen), ließ sichdas Original selten so verzerren, dass die entsprechenden Linien beim Verschieben zufriedenstellend anein-anderstoßen. Daher sollte man hier einzelne Teile (z.B. die einzelnen Steine+Umrandung) des Bildes aus-schneiden und in einem neuen Bild zusammenfügen. Durch Verzerren und leichte Änderungen mit demKopierstempel kann man die kopierten Teile auch begrenzt wiederverwenden, sodass man nur drei Steinewirklich verwendet, aber vier bis fünf in der Textur zu sehen sind.

Durch das (zugegeben umständlich) Copy&Paste kann man die Struktur gerade so wiederherstellen, dass diestrukturgebenden Linien beim Verschieben hinreichend passen. Was dann noch an Nähten zu erkennen ist, istleicht mit dem Kopierstempel zu entfernen.

Gegebenenfalls mussten bei beiden Verfahren noch Helligkeitsanpassungen durchgeführt werden, wenn dasQuellbild nicht gleichmäßig ausgeleuchtet war.

3.3. Texturgröße

Unser gesetztes Ziel war es, das fertige 3D Modell der Stadt einmal als interaktive AVI-Filme und einmal inVRML zu präsentieren. Bei den Filmen fällt eine niedrige Auflösung der Texturen nicht weiter auf, da die Filmeselbst nur sehr niedrig aufgelöst sind. In einer VRML Welt sind hochauflösende Texturen zwar durchaus hübschanzusehen, nehmen aber für die Übertragung per Internet selbst bei Breitbandanbindungen zuviel Platz ein.

Die Texturen können also in beiden Fällen sehr niedrig aufgelöst sein und trotzdem (oder im Fall von VRMLgerade deswegen) zufriedenstellende Ergebnisse erzeugen.

Es empfiehlt sich, als Kantenlängen der Texturen (in Pixeln) Zweierpotenzen zu verwenden, um eine Kompati-bilität mit OpenGL und älteren Grafikkarten zu gewährleisten. Welche Größe man letztendlich wählt, hängtvom Verwendungszweck der Textur ab. Eine Kacheltextur, die einzeln genommen keine große Fläche ein-nimmt, sollte natürlich deutlich niedriger aufgelöst sein als eine Textur für eine gesamte Hauswand. Fürerwähnte Hauswand reichen meistens 256x256 Pixel, bei Detailreichtum (Fachwerkhaus mit vielen Verzierun-gen) auch 512x512 Pixel.

Die JPEG Komprimierung, die sich in Adobe Photoshop über einen Schiebebalken einstellen lässt, konnte inden meisten Fällen auf "0" gesetzt werden. Dadurch konnten die Texturen in Größenordnungen von 5-30 KBgehalten werden.

3.4. Textur vs. Geometrie

Während des Modellierens steht man häufig vor der Entscheidung, ob man für ein Detail eine Textur verwendetoder es in Geometrie modelliert. Um herauszufinden, welche der beiden Möglichkeiten vorteilhafter für die

Typische Anwendung 21

Geschwindigkeit der entstehenden Szene ist, wurde ein einfaches Experiment durchgeführt. Als Maß für dieGeschwindigkeit einer fertigen Szene wählten wir die Dateigröße - je kleiner, desto besser. Ein ausgedehnterBenchmark mit Messung der Bildrate wäre sicherlich genauer gewesen, aber in Hinblick auf VRML war unseine möglichst kleine Datenmenge wichtiger.

Das Google 3D Warehouse stellt eine Vielzahl an vorgefertigten Komponenten zur Verfügung, darunter auchFenster verschiedenster Art. Eines dieser Fenster (27 Flächen, Dateigröße der exportierten Komponente 18 KB)sah einer unserer Fenster-Texturen (21 KB in einer Auflösung, die sich hinterher noch als zu groß herausstellenwird) sehr ähnlich. Zunächst wurde eine einfache Szene mit nur einem Würfel erstellt und unter zwei verschie-denen Namen abgespeichert. Dieser Würfel bekam in einer Szene ein Fenster als Textur, in der anderen ein Fen-ster in etwa gleicher Größe als Komponente. Die Geometrieszene war abgespeichert etwa 3 KB kleiner als dieTexturszene. Erhöhten wir aber die Anzahl der Fenster auf vier und speicherten die Szenen wieder ab, verhieltes sich genau andersrum - die Texturszene war 3 KB kleiner als die Geometrieszene.

Fazit: Bei einmaliger Verwendung des Details muss man abwägen, ob es sich lohnt, es in Geometrie zu model-lieren. Bei mehrmaliger Verwendung lohnt sich wohl eher eine Textur. Andererseits war der Unterschied inunserem Experiment nur sehr gering und die Geometrie noch sehr einfach. Bei komplizierterer Geometrie(Rundungen, z.B.) verschiebt sich das Verhältnis vermutlich deutlich zugunsten der Textur, wobei diese dasBild immer schlechter wiedergeben kann, je komplexer das Objekt wird.

3.5. Texturieren in SketchUp

Nachdem die Textur in Photoshop bearbeitet wurden, können sie in SketchUp eingebunden werden. Hierbei gibtes, je nach Situation, noch ein paar Dinge, die man beachten kann, um ein besseres Ergebnis zu erhalten.

3.5.1. Texturen einbinden

Nachdem wir in Photoshop unsere Bilder bearbeitet haben, erhielten wir normalerweise rechteckige Texturen,die direkt so auf die Geometrie der SketchUp-Welt gesetzt werden konnten. Hierzu stellt SketchUp den Farbei-merzur Verfügung. Ein Klick auf ihn und es öffnet sich automatisch der Materialmanager in dem unsere bishe-rigen Material gespeichert sind. Über Erstellenbzw. Bearbeitenhaben wir die Möglichkeit neue Texturen zuerstellen bzw. zu bearbeiten. Hierbei können wir unsere Texturen laden und sie in SketchUp noch ein wenigmodifizieren. Es ist möglich, den Texturen eine Grundtransparents zuzuordnen oder sie in einem bestimmtenFarbton darzustellen. Des Weiteren ist es auch möglich, ihnen eine Grundgröße in der SketchUp-Welt zuzuord-nen. Dadurch können wir das Material bereits vorher schon ein wenig skalieren, was uns bei extremen Größen-unterschieden ein wenig Arbeit sparen kann. Schlussendlich können wir unser neues Material erstellen undunsere Flächen damit füllen.

Nachdem wir die Textur (hier: ein Fenster) auf unsere Fläche gelegt haben, bietet uns SketchUp noch die Mög-lichkeit, das Material so zu verformen, dass es auch genau auf die Fläche passt. Dies geschieht mit den unter-

Typische Anwendung 22

schiedlichen Reißzwecken. Wir haben zu Auswahl:

• Verschieben (rot): Für das Verschieben auf der Fläche• Skalieren/Rotieren (grün): Für das Skalieren des gesamten Materials, bzw. für das Rotieren um den Ver-

schiebepunkt (rot)• Skalieren/Scheren (blau): Für das Scheren des Materials, bzw. das Skalieren in der Höhe• Verformen (gelb): Für das verformen der Fläche

Des Weiteren ist es uns möglich mit einem einfachen Klick auf die Reißzwecken, ihre Position auf dem Materi-al anzupassen. Dies ist nötig, falls wir keine rechteckigen Texturen oder Flächen haben und die Textur mög-lichst genau anpassen zu wollen. Hierzu setzen wir die Reißzwecken an die Punkte auf dem Material, die späteran die Punkte des Polygons gelegt werden sollen. Mit gedrückter Shift-Taste können wir nun die Reißzweckenfrei bewegen, unabhängig von ihrer eigentlichen Funktion.

Mit dieser Methode können wir so gut wie alle Texturen einfach auf unsere Flächen legen und erhalten guteErgebnisse.

Tipps:

• Man sollte insbesondere darauf achten, dass nicht mehr gebrauchte Materialien gelöscht werden sollte, dadiese sonst viel Speicher verbrauchen können. Am Einfachsten kann man im Materialmanager, wenn wiruns die Materialien im Modell ansehen, üben den Button mit dem Dreieck rechts nicht verwendete[Materialien] löschen. Teilweise werden einige Materialien nicht gelöscht, obwohl man sicher ist, sie nichtmehr im Modell zu haben. Das liegt daran, dass es im Komponentenmanager Komponenten gibt, die nichtmehr genutzt werden, aber natürlich noch ihre Materialen besitzen. Von daher sollte man auch nicht mehrbenötigte Komponenten löschen.

3.5.2. Weitere Tools

SketchUp bieten noch weitere Tools, die in Verbindung mit der Texturierung wichtig sein können:

• Bearbeiten der Textur: Beim Bearbeiten der Textur (durch die Reißzwecken) erhalten wir beim Rechtsklickauf die Fläche noch weitere Möglichkeiten, um die Textur zu verändern. Zum einen können wir die Texturum feste Winkel drehen oder wir spiegeln die Textur horizontal oder vertikal.

• Weiterführen der Textur: Des Öfteren habe wir die Situation, bei der wir eine Textur auf eine Fläche gelegthaben, aber auch wollen, dass die Textur auf der nächsten anliegenden Fläche genauso weiterverläuft, wiewir sie auf die erste Fläche gelegt haben. Hierzu kann man im Materialmanager das Pipetten-Tool auswäh-len und die Textur der ersten Fläche "aufsaugen" und dann auf die nächste Fläche weiterführen.

3.5.3. Simuliertes Multitexturing

Leider ist man in SketchUp bezüglich der Möglichkeiten der verschiedenen Texturingarten sehr beschränkt.Normalerweise ist nur das einfache Texturauflegen möglich. Praktisch wäre es teilweise allerdings schon, aufeine Häuserwand ein Detail zu legen, obwohl man im Hintergrund eine Wandtextur verwendet. Dies kann manmit einfachen Schritten aber simulieren:

• Zunächst wird auf unsere Wand ein Rechteck gelegt, auf welches wir dann unser Detail als Textur legen.

Typische Anwendung 23

• Danach zeichnen wir mit dem Linien-Tool den Umriss unseres Details nach.

• Und zum Schluss entfernen wir das ursprüngliche Rechteck und erhalten unser Detail auf der Fläche, ohneden Hintergrund geändert zu haben.

3.5.4. Simuliertes Alpha-Mapping

Oft ist es nicht unbedingt nötig eine komplexe Geometrie nachzubauen, um durch sie durchzusehen, z.B. beieinem Zaun oder ähnlichem. Hier wäre es praktisch, wenn man per Alpha-Mapping die durchsichtigen Teilerausschneiden könnte. Da SketchUp dies aber nicht beherrscht, müssen wir uns anders behelfen. Nachfolgendsind nun zwei Methoden aufgelistet, die ein passables Ergebnis erreichen können.

3.5.4.1. per Geometrie

Typische Anwendung 24

Die erste Möglichkeit benutzt den gleichen Trick, wie wir ihn bereits beim simulierten Multitexturing kennen-gelernt haben. Wir zeichnen also zunächst ein Rechteck für unsere Fläche, ziehen unsere Textur darauf, konstru-ieren unsere Linien und entfernen nicht mehr benötigte Bereiche. Allerdings können wir hier, für z.B. hängendeSchilder, auf eine Grundfläche wie beim Multitexturing verzichten und zeichnen unser Rechteck "in die Luft".Später müssen wir allerdings darauf achten, dass die Textur auch auf beide Seiten des ursprünglichen Rechtecksgelegt ist. Zunächst modellieren und texturieren wir eine Seite, um dann per Pipette die Textur auf die andereSeite zu holen. Gegebenenfalls kann die Textur dann noch gespiegelt werden, um von beiden Seiten das Gleichezu sehen.

3.5.4.2. per Photoshop

Auf den ersten Blick scheint es nicht möglich, Photoshop-Dateien in SketchUp zu nutzen. Dies hätte Vorteile,da man in Photoshop eine transparente Hintergrundebene verwenden kann. Allerdings beherrscht SketchUpdies. Dafür muss man sich nur, wenn man seine Textur auswählen möchte, alle Dateien anzeigen lassen. Dafürgibt man im Dateibrowser "*.*" (ohne Anführungszeichen) als Dateinamen an und kann dann auch die Photo-shop-Dateien als Textur wählen.

Achtung: -> Beim Export in andere Formate wie z.B. VRML oder 3Ds wird die Textur ohne Transparenz expor-tiert. Von daher ist diese Möglichkeit primär für SketchUp gedacht. Für die Exporte muss dann noch ggf. Extra-arbeit investiert werden.

4. Export nach Google EarthDie Software Google Earth ist in kurzer Zeit aufgrund seiner einfachen Handhabung und der dabei eindrucks-vollen Möglichkeiten sehr populär bei Internet-Usern geworden. Entsprechend bietet sie dank der Möglichkeitdes Imports von 3D-Modellen eine breite Plattform für die Präsentation eigenständig modellierter Gebäude.

Im Zuge der Erstellung eines Modells der Osnabrücker Altstadt während des Computergrafik-Praktikums 2006

4. Export nach Google Earth 25

beschäftigte sich unsere Gruppe neben der Erstellung der Häuser mit dem Transfer der in SketchUp erstellten3D-Modelle nach Google Earth. Dieses geschah durch die in SketchUp enthaltene Exportfunktion.

Eine detaillierte Erläuterung der Vorgehensweise befindet sich im zweiten Abschnitt dieses Berichtes. DerUmgang mit den aufgetretenen Problemen wird im dritten Abschnitt behandelt.

4.1. SketchUp

SketchUp ist eine Software zur Erstellung von 3D-Modellen und findet in unterschiedlichen Bereichen Anwen-dung. In diesem Jahr erwarb Google die Rechte an SketchUp und ermöglichte einen Export der dort erstelltenModelle nach Google Earth.

Desweiteren wurde eine kostenlose Version von SketchUp frei verfügbar gemacht. Im Folgenden wird diese alsGoogle SketchUp bezeichnet.

Die kommerzielle Variante von SketchUp, welche über zusätzliche Funktionen verfügt und im Moment in derfünften Version erhältlich ist, wird als SketchUp 5 bezeichnet.

4.2. Google Earth

Google Earth ist eine kostenlose Software zum Betrachten der Welt. Diese wird als Globus dargestellt, welchermit Satelliten- und anderen Luftaufnahmen überzogen ist. Zusätzlich zum reinen Ansehen der 2D-Aufnahmen,ist es möglich sich 3D-Gebäude anzeigen zu lassen, zum Beispiel von New York. Zum Einbinden der 3 Dimen-sionalen Gebäude wurde für Google Earth die sogenannte Keyhole Markup Language, oder kurz KML, ent-wickelt.

Ähnlich wie in VRML können in dieser Sprache Punkte, Linien und Polygone definiert werden. Außerdem kön-nen Flächen Farben und Texturen zugewiesen werden. Die KML-Dateien werden zum Betrachten in GoogleEarth in das komprimierte KMZ-Format umgewandelt. Google SketchUp und SketchUp 5 bieten beide dieMöglichkeit an, entwickelte Modelle direkt in das KMZ-Format zu exportieren.

4.3. 3D-Modelle nach Google Earth Exportieren

In diesem Kapitel soll kurz vorgestellt werden, wie man in SketchUp erstellte 3D-Modelle in das KMZ-Dateiformat exportiert. Außerdem soll erläutert werden, wie man die entstandenen Dateien in Google Earthbetrachten kann.

4.3.1. Gebäude positionieren

Damit in Sketchup erstellte 3D-Modelle in Google Earth auch an der richtigen Stelle stehen, ist es nötig, dasModell vorher richtig zu platzieren. Sketchup bietet zu diesem Zweck ein sehr einfaches Interface, das in Goo-gle SketchUp unter "View->Toolbars->Google" und in SketchUp 5 unter "Ansicht->Symbolleisten->GoogleEarth" zugeschaltet werden kann.

4. Export nach Google Earth 26

Der linke Button mit dem gelben Pfeil ist der "Get Current View"-Button.

Durch ihn ist es möglich die momentan in Google Earth vorhandene Ansicht in SketchUp zu importieren.

Auf dieser muss das Modell jetzt passend positioniert werden. Dafür sind im Allgemeinen diverse Transforma-tionen notwendig. Unserer Gruppe wurde die Arbeit dadurch erleichtert, dass die Grundrisse der Altstadt bereitsauf einem Google Earth-Snapshot erstellt wurden. Die Gebäude positionierten sich in der Folge in der x-y-Ebene sozusagen von selber, sofern der Layer auf dem der Schnappschuss lag noch vorhanden war.

Die Welt in Google Earth wird nicht nur als zweidimensionales Abbild auf einer Kugel dargestellt, es könnenzusätzlich aktuelle Höhendaten geladen werden, um einen besseren Eindruck von z.B. Gebirgen zu bekommen.Die echte Höhe des Terrains muss deshalb bei der Positionierung der Gebäude berücksichtigt werden. Dazudient der mittlere Button der Google Earth-Symbolleiste.

Er passt das Terrain den in Google Earth vorhandenen Gegebenheiten an. Die Gebäude müssen nun noch aufder z-Achse verschoben werden um sie dem Terrain anzupassen.

Nach dieser Positionierung kann es nötig sein das Gebäude noch etwas zu drehen, falls es zum Beispiel aufeiner schiefen Fläche steht. Erfahrungsgemäß müssen die Gebäude nicht perfekt auf dem Boden platziert sein,da die Ansicht in Google Earth es nicht zulässt sich direkt auf den Boden zu begeben. Leicht schwebendeGebäude oder Gebäudeteile fallen daher nicht auf.

4.3.2. Exportfunktionen nutzen

Bei der Betrachtung der Exportfunktion ist es sinnvoll zwischen den beiden Programmen Google SketchUp undSketchUp 5 zu unterscheiden. Beiden gemeinsam ist ihnen jedoch die Funktionalität des dritten Buttons in derGoogle Earth Symbolleiste.

4. Export nach Google Earth 27

Wird er betätigt so wird das Modell direkt in Google Earth importiert und platziert. Die Informationen zumModell werden temporär in Google Earth gespeichert. Diese Funktion ist daher nur sinnvoll, um zu überprüfen,ob man mit der Positionierung zufrieden ist. Zur Erstellung der KMZ-Dateien sollten die Exportfunktionen derbeiden Programme wie im folgenden erläutert, genutzt werden.

4.3.2.1. SketchUp 5

Obwohl es sich bei SketchUp 5 um die kommerzielle Variante des Programms handelt und sie der freien Versi-on den Export nach VRML und anderen Modellierungssprachen vorraus hat, bietet sie hier weniger Funktionali-tät als ihre kostenlose Schwester. Dazu jedoch später mehr.

Hat man also nun sein Modell platziert und sich vergewissert, dass es auch in Google Earth an der richtigenStelle steht, sollte man nun die Exportfunktion nutzen. Diese befindet sich unter "Datei->Exportieren->3D-Modell...". Hier kann man seine Datei als KMZ-Datei speichern und diese in Google Earthbetrachten.

Die entstehende Datei enthält die Geometrie des Modells und einige Farbinformationen, die aus den ursprüngli-chen Texturdaten interpoliert werden. Die eigentlichen Texturen werden jedoch nicht mit exportiert und sinddemnach auch in Google Earth nicht zu sehen.

4.3.2.2. Google SketchUp

Google SketchUp enthält, wie bereits gesagt, mehr Funktionalität beim Google Earth-Export. Hier stehen unter"File->Export->Google Earth..." zwei Varianten zur Verfügung. Zum einen "Google Earth(*.kmz)", zum ande-ren "Google Earth 4(*.kmz)".

Die erste Variante exportiert die Geometrie des Modells und interpolierte Farbwerte für die Flächen und ent-spricht somit dem Export von SketchUp 5.

Die zweite Variante erweitert den Export von SketchUp 5 zusätzlich um die Möglichkeit Texturen zu exportie-ren. Die Modelle erscheinen daraufhin in Google Earth wie in SketchUp. Jedoch muss man hier mit deutlichgrößeren Dateien leben, was bei dem Umfang unseres Projekts den Rahmen des Handhabbaren gesprengt hätte.Daher liegen die KMZ-Dateien ohne Texturen vor.

4. Export nach Google Earth 28

Dabei ist die Datei in der keine Texturen vorhanden sind 613 KB groß. Mit Texturen wächst die Datei auf ganze3,11 MB.

4.3.3. Betrachtung

Um KMZ-Dateien in Google Earth zu betrachten, öffnet man diese einfach über "Datei->Öffnen...". Die Dateiwird nicht nur geöffnet, sondern, falls vorhanden, auch direkt mit anderen KMZ-Dateien zusammengeführt. Dieeinzelnen eingefügten Dateien stehen unter "Orte" im Ordner "Temporäre Orte" an der linken Seite des Bild-schirmes. Die Modelle können dort auch einzeln wieder abgschaltet werden.

Zusätzlich zum einfachen Betrachten ist es in Google Earth möglich über sogenannte Ortsmarken eine Tour zudefinieren. Diese kann dann durch drücken des Abspielbuttons gestartet werden. Am besten erstellt man sich zudiesem Zweck einen Ordner "Tour" als Unterordner von "Temporäre Orte".

4.4. Probleme beim Export

Trotz des auf den ersten Blick sehr einfach erscheinenden Verfahrens traten einige Probleme beim Export derModelle nach Google Earth auf.

Im Folgenden wird in diesem Zusammenhang auf das Verhalten in Google Earth von Flächen, die in SketchUpals Rückseiten definiert wurden, sowie Fehler in der geometrischen Struktur der Modelle nach dem Export ein-

4. Export nach Google Earth 29

gegangen.

4.4.1. Darstellung von Rückseiten

Nach dem Export der ersten texturierten Modelle zeigte sich eine Unregelmäßigkeit in der Darstellung der Flä-chen. Während ein großer Teil der Flächen einwandfrei erschien, waren andere ungewöhnlich dunkel.

Es zeigte sich, dass Google Earth Flächen, die in SketchUp als Vorder- bzw. Rückseiten definiert sind, unter-schiedlich darstellt. Vorderseiten werden normal präsentiert, während Rückseiten deutlich dunkler eingefärbtwerden (im Bild unten sind die Vorderseiten in beige gekennzeichnet, die Rückseiten in blau).

Da zu dem Zeitpunkt, als der Grund für die ungewollte Darstellung erkannt wurde, die Modellierung bereitsnahezu abgeschlossen war, und zudem SketchUp keine Möglichkeit besitzt die Flächen automatisch zu richten,war eine manuelle Wendung der entsprechenden Flächen notwendig.

4.4.2. Fehler beim Export der Geometrie

Über die Schwierigkeiten mit der Darstellung der Texturen hinaus bereitete in Einzelfällen auch die GeometrieProbleme. Hierbei war die Exportfunktion von SketchUp für die ungewollten Effekte verantwortlich.

In einem Fall befand sich eine vormals korrekt positionierte Fensterpartie nach dem Export nach Google Eartheinige Meter über dem dazugehörigen Gebäude.

4. Export nach Google Earth 30

Eine weitere Anomalie ergab sich bei einem anderen Gebäude. Hier ergaben sich nach dem Export Aussparun-gen in der Frontwand des Gebäudes in Form einer weiteren Fensterfront.

Um diese Probleme zu lösen, muss man einfach alle Komponenten in SketchUp vor dem Export in Einzelteileauflösen. Dadurch werden die oben beschriebenen Effekte vermieden. Außerdem braucht, zu einer Komponentezusammengefasste Geometrie in SketchUp mehr Speicherplatz. Deshalb empfiehlt es sich immer die Kompo-nenten zu zerteilen, wenn man mit der Arbeit am Modell fertig ist.

4.5. Ergebnis

Nach drei Wochen Arbeit ist nun eine circa 4,9 MB große Datei Namens AltstadtOsnabrück.kmz entstanden.Diese kann man mit Google Earth betrachten. Man kann einzelne Gebäude, bzw. Gebäudeblöcke an- und aus-schalten, um so den Blick auf verdeckte Häuser frei zu machen. Insgesamt existieren 25 dieser auswählbarenBlöcke.

Zusätzlich ist es möglich sich eine kleine Tour durch die Osnabrücker Altstadt anzusehen. Dazu muss manlediglich den Ordner Tour markieren und den Abspielbutton betätigen. Die Tour umfasst die wichtigsten Gebäu-de der Altstadt wie u.a. das Heger Tor und die Marienkirche. Werden diese Gebäude angewählt so erscheinteine Anzeige mit einigen Informationen über das Bauwerk.

Das Ergebnis ist http://project.informatik.uos.de/cgp/ unter dem Unterpunkt Google Earth zu finden.

4. Export nach Google Earth 31

4.6. Fazit

Google Earth und die beiden SketchUp-Varianten harmonieren größtenteils gut miteinander. Das Platzieren derGebäude in der Google Earth-Welt ist sehr einfach und intuitiv. Wenn man einige Dinge beachtet funktioniertdie Exportfunktion von SketchUp sehr gut. Achten sollte man hierbei vor allem darauf, das beim Modellieren inSketchUp immer die Innenflächen nach innen und die Außenflächen nach außen zeigen. Das ist nicht so trivialwie es klingt.

Die entstehenden Dateien sind deutlich kleiner als die SketchUp-Dateien, aufgrund fehlender Texturen. DasFehlen der Texturen jedoch macht sich gerade auf Häusern mit wenig Geometrie bemerkbar. Doch durch die aufdie Flächen aufgebrachten Farben wirkt die Stadt trotzdem jederzeit lebendig, deutlich lebendiger als zum Bei-spiel New York.

Ein weiteres Problem ist die Möglichkeit von Google Earth das Terrain auf- und abzuschalten. Platziert man dieGebäude mit SketchUp, so sind sie in Google Earth nur bei eingeschaltetem Terrain an der richtigen Stelle.Schaltet man das Terrain jedoch ab, dann schweben die Gebäude in der Luft.

4. Export nach Google Earth 32

4.7. Gallerie

Übersicht über die Osnabrücker Altstadt.

Die Marienkirche auf dem Marktplatz.

4. Export nach Google Earth 33

Das Osnabrücker Rathaus.

Das Heger Tor.

5. VRML PräsentationDie Aufgabe unserer Gruppe bestand darin, Teile der Altstadt zu modellieren, mit Hilfe der SketchUp Export-

5. VRML Präsentation 34

funktion eine dreidimensionale Welt in VRML zu erstellen und die von den Teams gestalteten Gebäude in einerDatei zusammen zu führen.

Im Verlauf der Arbeiten stellten sich diverse Aufgaben und Probleme, die zu lösen waren:

• Was ist grundsätzlich bei der Modellierung zu beachten?• Die Grösse der SketchUp-Dateien• Warum sehen in VRML manche Flächen nicht so aus wie sie sollen?• VRML hat eine sehr dünn gesähte Dokumentation.• In welchem Umfang muss die VRML-Datei angepasst werden?

5.1. Arbeiten mit Sketchup

Grundsätzlich ist SketchUp ein sehr mächtiges und intuitives Werkzeug. Wie sich später aber herausstellte, sindfür das weitere Arbeiten mit den Modellen doch einige Sachen zu beachten.

Zu Beginn musste man sich einigen, ob man die Modellierung auf Basis der Grundrisse vornimmt oder unab-hängig davon die Modelle separat auf Basis der Informationen aus dem Grundriss erstellt.

Baut man die Gebäude nach der ersten Option, hat es den Vorteil, dass sich alle Modelle ohne Komplikationenin Form und Grundfläche in die Gesamtwelt integrieren. Allerdings ist es weitaus komplizierter ein Gebäude zu"basteln", welches auf einer nicht rechtwinkligen Basis steht. Flächen müssen trianguliert werden, was das Auf-legen von Texturen teils fast unmöglich macht, Geometrie kann nicht so originalgetreu nachgebaut werden.

Erstellt man die Modelle separat auf Basis der vorliegenden Daten, sehen diese zwar wesentlich besser aus undsind um einiges schneller zu erstellen, jedoch hat das zur Folge, dass in der Zusammenführung die Fronten insich stimmig sind, die hinteren Teile sich aber überlappen und ineinander stehen.Wir haben uns für den Mittel-weg entschieden. Bei einigen Gebäuden war es einfach besser sie gleichzeitig mit Hilfe des Grundrisses zuerstellen. Bei anderen war es ansehnlicher, sie auf eine rechtwinklige Basis zu stellen. Das Urteil über dasErgebnis überlasse ich dem Leser.

5.2. Export nach VRML

Export

Wir haben uns dafür entschieden, die Krahnstr. und den Marktplatz um die Marienkirche in einer virtuellenWelt darzustellen.

Hierfür haben wir in SketchUp die Welt vorerst "zusammengebaut" und möglichst auf das Nötigste in PunktoGeometrie und Texturen eingedampft. Im Verlauf der Tests zu Performance und Aussehen hat sich herausge-stellt, dass es wichtig ist darauf zu achten, dass die Modelle nicht übermässig aufwendig geometrisch gestaltetsind. Im Gegenzug aber die meiste Geometrie durch Texturen zu ersetzen hatte zur Folge, dass die sekundärenDateien, welche in die VRML-Welt eingebunden werden, einen zu grossen Umfang erreichten.

Zu viel Geometrie steigert die Grösse der .wrl-Datei, was eine sehr ruckelige Bewegung und längere Wartezei-ten beim Laden nach sich zieht. Zu viele und insbesondere zu grosse Texturen benötigen aufgrund der Grösseund der Menge zu viel Zeit beim Herunterladen aus dem Netz. Es hat sich für Texturen herausgestellt, dass Auf-lösungen im Bereich von 400x300 bis 1000x600 völlig ausreichend sind bei gleichbleibender Qualität der Dar-stellung.

Zum Vergleich sehen Sie im Folgenden auf der linken Seite das Originalbild (2244x1574, 1,7MB) und auf derrechten Seite das verkleinerte (1000x700, 128KB).

Export 35

Durch Entfernen unnötiger bzw. in der VRML-Welt nicht sichtbaren Linien, sowie durch Herunterrechnen derTexturen war es möglich den Umfang aller benötigten Dateien im Beispiel der Krahnstr. von ca 16MB auf ca. 9MB zu schrumpfen. Somit haben wir eine Dimension erreicht, die es erlaubt die VRML-Welt mit Hilfe einerstandart DSL-Leitung ohne zu grosse Wartezeiten zu betreten.

Des Weiteren ist es wichtig, genau darauf zu achten, was alles exportiert wird. So ist es überflüssig, den Rück-flächen Beachtung zu schenken. Im Beispiel des Markplatzes hat sich die Grösse der .wrl Datei von 10MB aufgut 5MB reduziert. Die dennoch relativ grosse Datei resultiert daher, dass auf dem Markplatz die Marienkirchesteht. Hierbei liess es sich nicht umgehen, dass mit viel Geometrie gearbeitet werden musste.

Um ein paar Grössenordnungen zu nennen:

• Die Welt der Krahnstr. besteht aus• 9101 Kanten• 3450 Flächen• und 114 Texturen.

• Der Marktplatz aus• 34507 Kanten• 15733 Flächen• und 300 Texturen.

Die daraus resultierenden .wrl-Dateien enthalten 89926(Krahnstr) bzw. 413302 (Marktplatz) Zeilen.

Hierbei hat die Marienkirche mit 15486 Kanten, 7840 Flächen und 18 Texturen den Löwenanteil. ->Zum Ver-gleich: ein durchschnittliche modelliertes Haus hat ca 1200 Kanten und 400 Flächen, liegt jedoch mit 25 Textu-ren über dem Wert der Kirche. Die SketchUpdatei der Modelle liegt im Bereich von gut 5MB für dir Marienkir-che, bei "normalen" Häusern zwischen 0,5 und 1,8MB.

Die Gesamtgrösse der Ordner, welche die Welt beinhalten, beläuft sich nach allem "Abspecken" auf ca. 25MBfür den Marktplatz und ca. 9MB für die Krahnstrasse.

Das sollte verdeutlichen wie wichtig es ist auf den Umfang der Geometrie und Texturen, sowie die Grösse zuachten.

5.3. VRML

Export 36

Zur kurzen Übersicht über VRML einige Links zu VRML:* http://www.debacher.de

* http://de.wikipedia.org/wiki/Vrml* http://i31www.ira.uka.de/docs/mm+ep/03_VRML/main_html.html* http://web3d.vapourtech.com/tutorials/vrml97/* http://vrml.cip.ica.uni-stuttgart.de/linuxtag/

Inhalte

• Konfigurationen der .wrl nach dem Export• Navigationsinfo• Beleuchtung

• Das richtige Licht• AmbientIntensity

• Probleme mit der Darstellung in der VRML-Welt

5.3.1. Konfigurationen der wrl-Datei nach dem Export

Nach dem Export von SketchUp nach VRML hat man eine Datei, die ausschliesslich Informationen zu den Sha-pes und den Kamerapositionen enthält. Aus diesem Grunde ist es nötig, "zu Fuss" alle Parameter zur Beleuch-tung, dem Beobachter und anderen gewünschten Extras nachzutragen.

1. Navigationsinfo2. Beleuchtung

• Das richtige Licht• AmbientIntensity

5.3.1.1. Navigationsinfo

In diesem Knoten werden in der wrl-Datei alle Informationen zur Bewegung und dem Avatar (virtuellen Men-schen) definiert.

• Die Grösse bzw. Dimensionen des Avatars, sowie seine Steighöhe.• Es besteht die Möglichkeit, dem Avatar eine Art Taschenlampe zu geben. Diese leuchtet dann immer in sei-

ne Blickrichtung.• Der Startmodus der Bewegung (walk, fly, etc).• Die Geschwindigkeit mit der man sich bewegt.

5.3.1.2. Beleuchtung

Wie in jeder Welt läuft auch hier ohne Licht nichts. Standartmässig ist nach dem Export die frisch gebackeneVRML-Welt dunkel.

Leider bietet Sketchup nicht die Möglichkeit Lichtquellen zu implementieren. Man kommt also nicht umher dieDatei nocheinmal manuell zu überarbeiten. Zur Auswahl stehen in VRML DirectionalLight, PointLight undSpotLight. Ausserdem kann man die ambienten Eigenschaften des Materials beeinflussen.

5.3.1.2.1. Das richtige Licht

Zum Ausleuchten der VRML-Welt stehen zu Verfügung:

Inhalte 37

• DirectionalLight• entspricht dem bekannten gerichtetem Licht

• SpotLight• eben ein Strahler

• PointLight• Ein Punkt der in alle Richtungen "strahlt"

DirectionalLight

Diese Art Licht wird einfach durch eine Richtung definiert. Sie erhellt alles in der selben Intensität (definierbarim Bereich [0,1]. Es gibt hierzu kein Abschwächungsfaktor.

Spotlight

Hiermit wird ein Strahler mit einer wohl definierten Position und Richtung gesetzt. Zur weiteren Konfigurationist es möglich den Abstrahlwinkel und die Abschwächung zu definieren.

Pointlight

Hiermit wird ein Punkt mit einer wohl definierten Position gesetzt. Im Weiteren kann man einen Radius bestim-men, in dem von dem Punkt aus Licht abgestrahlt wird. Auch hier gibt es den Abschwächungsfaktor.

Bei allen Lichtarten können Farbe und Intensität des Lichtes in den definierten Bereichen bestimmt werden.

5.3.1.2.2. AmbientIntensity

Jede Oberfläche hat eigene Werte, die die Fähigkeit Licht zu reflektieren bestimmen.

Wenn nun Lichtquellen in der Welt platziert sind, die ambientIntensity der Oberflächen aber auf 0 steht(Defaultwert), so wirken sie sehr dunkel, wie im Schatten, obwohl sie mehr oder weniger direkt im Licht stehen.

Aus diesem Grunde empfiehlt es sich, diesen Wert mit anzupassen. Erfahrungsgemäss hat sich ein Wert zwi-schen 0.6 und 0.8 als praktikabel erwiesen.

5.3.1.3. Verlinkung zweier Welten

Da die Krahnstraße und der Marktplatz in der Realität verbunden sind, haben wir uns dazu entschlossen, auch inder VRML-Welt eine Verbindung zu bauen.Dazu nutzten wir den in VRML existierenden Anchor-Knoten, mitdem eine Welt nachgeladen wird und durch den man per Mouse-Click in diese Welt gelangt.Der Anchorknotenist wie folgt aufgebaut:Anchor{

url " NameDerWelt .wrl"description " einzublendender Text, wenn die Mouse über den Knoten fährt "children[# alle Knoten, die einen Sprung herbeiführen sollen]

}

Dieser Knoten ist in der schon vorhandenen .wlr-Datei einzufügen und an den entsprechenden Stellen zuändern. Der Knoten für die Verlinkug muss aus dem generierten Teil entfernt werden und in den children -Knoten des Anchor -Knoten eingefügt werden. Eventuelle Transformationen wurden auch übernommen, damitder Knoten an der richtigen Stelle sitzt. In der Welt des Marktplatzes hat dies nicht so funktioniert. Der Knoten,der für die Verlinkung zuständig war, befand sich außerhalb des Marktplatzes im Raum. Daher entfällt in die-sem Fall die Verlinkung zur Krahnstrasse. Wenn man diese betreten möchte, muss sie selbständig geladen wer-den.Wird die Verlinkung aufgerufen, gelangt man Default-mässig auf dem ersten im Quellcode definiertenViewpoint. Möchte man zu einem bestimmten Viewpoint gelangen, kann man dies im url -Knoten

DirectionalLight 38

url " NameDerWelt .wrl# NameDesViewpoint "

Als Beispiel:Aus der Ausgangswelt (jeweils im Bild links) gelangt man durch Mouse-Click in die selbe neueWelt (jeweils rechts), allerdings jeweils zu einem anderen ViewPoint.

Default-mässiger Viewpoint:url "neue_Welt.wrl"

Der gewünschte Viewpoint im folgenden Beispiel heißt "rot", es existieren die weiteren Viewpoints "alles"(Default-Viewpoint), "blau" und "grün".url "neue_Welt.wrl#rot"

5.3.2. Probleme mit der Darstellung in der VRML-Welt

Was in der SketchUp-Welt gut aussieht kann sich in VRML schnell ins Gegenteil verkehren. So z.B. kann essein, dass Flächen extrem überblendet sind, auf anderen Flächen hingegen die Texturen flimmern oder gar nichtangezeigt werden.

Sketchup ist es ziemlich egal, ob die sichtbare Seite einer Fläche eine Front oder Rückfläche ist. Die Texturenerscheinen so, wie sie sollen. VRML hingegen stellt diese Flächen anders dar. Somit ist die Überblendung einerFläche bis hin zum grellen weiss so hell erscheinen, dass Details der Fläche nicht mehr sichtbar sind.

Pointlight 39

Dreht man die Flächen um, so kehrt man zur "Normalität" zurück.

Pointlight 40

Wenn sich in SketchUp überlagernde Flächen berühren oder gar schneiden, kommt das angesprochene Flim-mern zu stande. Dies ist wieder ein Argument für die separate Modellierung. Da hier die Flächen planar sindund der Effekt bei geschicktem Agieren weitestgehend vermieden wird.

Weiterhin wurden Komponenten, die im Gebäude enthalten sind, "abgesprengt". So z.B. sind die Türme amRathaus im Modell eingene Komponenten, während das Haus an sich eine weitere Komponente ist. Sketchuphat die Kanten beider Komponenten separat exportiert, was zur Folge hat, dass jede für sich ein eigenes Modell-koordinatensystem besitzt. Das folgende Bild veranschaulicht diese Tatsache:

5.4. Fazit

Zusammenfassend kann man sagen, dass SketchUp ein gut gelungenes, intuitives Programm ist. Es bietet reich-haltige, mächtige Werkzeuge die alle mehr oder weniger leicht zu bedienen sind, bereits schon in der freien Ver-sion.

Für grössere Vorhaben jedoch ist SketchUp zu speicherlastig. Für die fertige Altstadt mit ca. 200 Modellen istdie gespeicherte Datei am Ende auf gut 45MB angeschwollen. Das hatte zur Folge, dass der 512MB grosseArbeitsspeicher hoffnungslos überfordert war und das Arbeiten sich mehr durch Warten als durch Produktivitätauszeichnete.

Desweiteren ist das Programm für meinen Geschmack etwas zu intuitiv. Man macht sehr viele Dinge unbewusstbzw. SketchUp regelt das. Das hat zur Folge, dass beim weiteren Arbeiten mit den Modellen wie z.B. derExport nach VRML Probleme auftreten, die im Vorhinein hätten vermieden werden können.

VRML ist als dreidimensinales Darstellungsmedium bedingt geeignet. Unser Vorhaben hat schnell Grenzenbzgl. Performance aufgezeigt. Dennoch ist es auch trotz seines "Alters" für kleinere Projekte gut geeignet.

Bei einzelnen Modellen kann man mit Geometrie und Texturen etwas grosszügiger agieren, ohne grössere Ver-luste bei der Darstellung hinnehmen zu müssen.

Pointlight 41

Auch das Modifizieren der .wrl nach dem Exportieren erweist sich als mühsam und manchmal auch lästig (Mitfreundlichen Gruss an die Urheber der Exportfunktion). Ich hätte mir gewünscht, dass trotz des reichhaltigenAngebotes an Werkzeugen die Möglichkeit bestanden hätte, Lichtquellen und Darstellungseffekte mit einbauenzu können.

Als Alternative zu VRML wäre unter anderem OpenGL zu erwähnen, zumal VRML und OpenGL in der Dar-stellung kaum Unterschiede aufweisen. Nur der Gedanke, dass VRML bereits seit einiger Zeit von OpenGLmehr oder weniger abgelöst wurde, zwängt die Frage auf, warum man sich für eben dieses in Sketchup entschie-den hat.

In Bezug auf Dokumentation und Support ist OpenGL hier sicher die bessere Alternative. Desweiteren hat dieErfahrung gezeigt, dass die verfügbaren VRML-Viewer nicht an die heutige Technik angepasst sind. So hat bei-spielsweise der Cortona Player bei der Installation moniert, dass Windows2000 ServicePack3 nicht installiertwar. Für die Installation mit alternativen Webbrowsern mussten sogar diverse Ordner mit Dateien von Netscapeerstellt werden, um die Installationsroutine zu bewegen den Viewer auch für Firefox verfügbar zu machen. Lei-der war der Aufwand unnötig, da letztendlich alles am Nichtfunktionieren scheiterte und man brav zum Micro-soft InternetExplorer zurückkehrte.

6. Flash-WalkthroughsZiel unserer Arbeitsgruppe ist die Erstellung eines virtuellen Stadtrundgangs in einer Form, die sich für die Ein-bettung in einer Webseite eignet. Dieser soll keine außergewöhnlichen Anforderungen an Hardware-, Software-und Netzwerkleistungen des Systems stellen, um auf einer möglichst breiten Pallette von Rechnern darstellbarzu sein.

Um dieses Ziel zu erreichen bietet sich das Bereitstellen eines präperierten Filmes an, der in dem in SketchUperstellten Stadtmodell erzeugt wird. Die Erzeugung dieses Films darf durchaus aufwendig sein, allerdings solltedas Resultat in einem streamingfähigen Format vorliegen und über durchschnittliche DSL-Verbindungen (etwa100kB/s) reibungslos dargestellt werden können.

Darüberhinaus ist ein gewisses Maß an Interaktivität wünschenswert. So soll nicht der komplette Rundgang vor-gegeben sein, sondern es soll die Möglichkeit bestehen, an Kreuzungen in unterschiedliche Richtungen zu ver-zweigen.

6.1. Planung des Rundganges

Der virtuelle Rundgang soll in Form einer Sammlung von kurzen Filmsequenzen realisiert werden, die durcheine Steuerlogik in geeigneter Weise aneinandergereiht werden. An vorgegebenen Verzweigungspunktenbesteht dann die Möglichkeit, eine von mehreren möglichen Fortsetzungen zu wählen, die einer Links- oderRechtsdrehung oder einer Bewegung zum nächsten Verzweigungspunkt entsprechen.

Auf der folgenden Karte sind die Verzweigungspunkte markiert, die wir bei der Erstellung der Filmsequenzenzugrunde gelegt haben.

6. Flash-Walkthroughs 42

An jedem dieser Punkte gibt es verschiedene Blickwinkel, an denen Filme anfangen und enden können. Bei-spielsweise startet eine Bewegung, die sich von Punkt A nach Punkt B bewegt mit einem anderen Blickwinkelals eine von A nach D. Um diese unterschiedlichen Ausrichtungen zu benennen, haben wir dem Namen desPunktes eine Zahl nachgestellt. So gibt es etwa die verschiedenen Ausrichtungen A1, A2 und A3.

Zur Benennung der Filme haben wir das folgende Schema entwickelt: Eine Bewegung zwischen zwei Punktenwird durch Aneinanderfügen von Start- und Endblickwinkel gebildet, als beispielsweise "A2-B3". Links- bzw.Rechtsdrehungen werden durch Anhängen der Buchstaben "l" bzw. "r" an den Ausgangsblickwinkel gebildet,etwa "A2r".

6.2. Animationen in SketchUp

Google SketchUp ermöglicht die Erstellung von animierten Ansichten eines Modells. Diese werden kreiert,indem man verschiedene Sichten auf das Modell (unterschiedlicher Kamerastandort und Blickwinkel) auf soge-nannten Seiten speichert. Sketchup erzeugt daraus eine Filmsequenz, indem es eine Kamerafahrt durch diesevorgegebenen Punkte berechnet. Eine solche Animation kann dann in Form eines Movies (avi-Format) odereiner Bilderserie (in png, jpg, bmp oder tif) exportiert werden (Datei->Exportieren->Animation... - nur Verfüg-bar in Sketchup Pro!).

Allerdings hat sich herauskristallisiert, dass die Möglichkeiten, die SketchUp von Hause aus zum Umgang mitAnimationen bietet, für die Anforderungen innerhalb unseres Projektes nur beschränkt geeignet sind. SketchUpsieht die Seiteneinstellungen als integralen Bestandteil des Modells an und erlaubt es nicht, diese separat zu im-oder exportieren. Dadurch wird es schwierig, die große Anzahl von Filmen (über 100) vorzubereiten, bevor dasModell fertiggestellt wird. Auch erscheint es unrealistisch, jeden Film mit einem eigenen Modell (jeweils ca. 40Megabyte) zu speichern.

Um diese Beschränkungen zu umgehen, haben wir uns entschlossen, SketchUp mittels der angebotenen Ruby-Schnittstelle an unsere Erfordernisse anzupassen.

6.3. Erweitern von SketchUp durch Ruby-Skripte

SketchUp stellt eine Schnittstelle zur Verfügung, die es ermöglicht zahlreiche Funktionen durch Ruby-Skripteanzusteuern. Dadurch wird es auch möglich, wiederkehrende Arbeitsabläufe zu automatisieren. Im Rahmen des

6. Flash-Walkthroughs 43

Projekts wollen wir die Ruby-Schnittstelle dazu nutzen, Rundgänge vorzubereiten und zu speichern, um sie spä-ter, in einem fertigen Modell laden und ausführen zu können.

Einstieg in SketchUp-Ruby

Zunächst ist darauf hinzuweisen, dass die SketchUp-Ruby-Dokumentation eher dürftig ausfällt. Die in der Dis-tribution enthaltenen HTML-Seiten, die offenbar aus den absolut minimalistischen Kommentaren des Quellco-des der zugehörigen Klassen generiert wurden, werfen mehr Fragen auf, als sie beantwortet - im wesentlichenlisten sie die existierenden Klassen und Funktionen auf: so erfährt man etwa, dass es eine Methode zum Hinzu-fügen von Seiten zum aktuellen Modell gibt, bleibt aber mit der Frage, wie man diese Seiten wieder entfernenkann, vollständig alleine gelassen. Auch die Beispiel-Skripte, die man von der Sketchup-Webseite herunterladenkann, sind kaum dokumentiert und bieten daher nur eingeschränkte Unterstützung. Etwas Hilfe bietet dasSketchup-Ruby Forum, in dem sich mit etwas Glück wertvolle Hinweise finden lassen. Im folgenden werdendie Erkenntnisse, die wir im Laufe unserer Recherchen gewonnen haben, zusammengestellt.

Laden von Ruby Skripten

SketchUp lädt sämtliche Ruby-Skripte, die sich im SketchUp-Plugin-Verzeichnis befinden, beim Start ein.Selbsterstellte Ruby-Skripte können also in dieses Verzeichnis kopiert werden und stehen dann beim nächstenStart von Sketchup zur Verfügung.

Ist dies nicht möglich (etwa weil mensch keinen Schreibzugriff auf das SketchUp-Plugin-Verzeichnis besitzt),besteht auch die Möglichkeit, Skripte händisch zu laden. Dazu muss die Ruby-Konsole geöffnet werden(Fenster -> Ruby-Konsole) und ein Befehl der folgenden Art eingegeben werden:

require 'Z:\ulf\ruby\rundgang.rb'

Allerdings ist darauf zu achten, dass ein Ruby-Skript in der Regel nur einmal geladen werden kann. Wird dassSkript geändert, muss SketchUp neu gestartet werden, bevor das Ruby-Skript erneut geladen werden kann.

Erweiterung von SketchUp

Nach Überwinden dieser Einstiegsprobleme, war es uns möglich, Eigenschaften des aktuellen Modells miteinem Ruby-Skript abzufragen und auszugeben. In einem nächsten Schritt haben wir die Möglichkeit geschaf-fen, die für uns relevanten Kameradaten in einer Textdatei zu speichern und wieder zu laden. Eine solche Text-datei enthält für jede Kameraeinstellung die folgenden Zeilen:page A1

eye: 52.274966 8.040149 65.349453target: 52.265845 8.037979 -505.858915up: -0.007893 -0.020291 0.999763

end

Darüberhinus haben wir einige Funktionen zum Positionieren und Ausrichten der Kamera hinzugefügt. ZurNutzbarmachung dieser Funktionalität wurde SketchUp um entsprechende Menupunkte und eine Toolbar erwei-tert.

Das vollständige Ruby-Skript kann von der Web-Seite des Computergraphikpraktikums 2006 heruntergeladenwerden.

6.4. Darstellung von Animationen im Web

Zum Einbinden der Videos in eine Webseite erscheint uns das von Google Sketchup erzeugte AVI-Formatungeeignet, da solche Filme in der Regel durch einen externen Player dargestellt werden, und sich daher nurbeschränkt steuern lassen. Die erzeugten Dateien sind meistens im Bereich von ca. 20 MB, was für eine Darstel-lung bzw. für ein Streamen im Web völlig ungeeignet ist. Stattdessen haben wir uns dafür entschieden, die Ani-mationen als Flash-Movies aufzuarbeiten, da das Flash-Plugin in den meisten neueren Browserinstallationenstandardmäßig enthalten ist, und damit eine interaktive Steuerung der einzelnen Filmsequenzen möglich seinsollte. Flash 8 bietet desweiteren einen Flash-Video-Encoder an, der es uns ermöglicht die erzeugte avi Dateimit dem Video-Codec ON2 VP6 in einen Flash-Film (.flv) umzuwandeln. Die resultierende Dateigröße kann

Einstieg in SketchUp-Ruby 44

dadurch bei mittlerer Qualität (400Kbit/s) auf ein Hundertstel und bei hoher Qualität (700Kbit/s) auf ein Zwan-zigstel verringert werden. Um möglichst flüssiges Abspielen zu gewährleisten haben wir eine Auflösung von400x300 Pixel gewählt. Dies ist für eine normale DSL-Verbindung gut übers Netz zu streamen.

6.4.1. Variante mit Javascript

Da zu Beginn des Praktikums das Macromedia Flash Studio noch nicht zur Verfügung stand, haben wir ineinem ersten Versuch, eine Herangehensweise gewählt, die ganz auf dieses verzichtete. Mit Hilfe des Pro-gramms avi2swf aus dem OpenSource-Paket swftools http://www.swftools.org/ haben wir die durch GoogleSketchup exportierten AVI-Filme in Flash-SWF-Dateien umgewandelt.

Eine Demonstration der Steuerung der SWF-Dateien mittels JavaScript ist auf der Web-Seite des Programmier-praktikums zu finden. Hier wird in einer HTML-Datei ein Formular mit einigen Buttons definiert. Mittels des<embed>-Tags wird eine swf-datei eingebunden und erhält eine id (hier id=demo). Folgender Javascript-Codewird mit den Buttons assoziiert und für das Starten bzw. Stoppen des Movies verwendet:document.demo.Play()

document.demo.StopPlay()

Mit Hilfe von document.demo kann also das Movie angesprochen werden. Um interaktives Laden zu ermögli-chen kann mit dem Kommando:document.demo.LoadMovie(name)

ein Flash-MovieClip (.swf-Datei) geladen und gestartet werden. Zu Demonstrationszwecken stehen die MoviesTest1, Test2 und Test3 bereit, die über das Select-Feld ausgewählt werden können.

6.4.2. Variante mit Flash

Wie sich herausgestellt hat, war keines der Projektmitglieder mit dem Flash Studio ausreichend vertraut, um dasVorhaben direkt umzusetzen. Insbesondere waren Kenntnisse der dort verwendeten Programmiersprache Acti-onScript gar nicht vorhanden, so dass diese erst erarbeitet werden mussten.

Unterschiedliche Möglichkeiten zur Darstellung von Filmen

Flash stellt eine Reihe unterschiedlicher Möglichkeiten zur Darstellung von Filmen zur Verfügung. Dies liegtzum einen daran, dass Flash als historisch gewachsenes Produkt neue Techniken inkorporiert hat, andererseitsaber auch in unterschiedlichen Kontexten verschiedene Anforderungen an die Fähigkeit zur Darstellung von Fil-men gestellt werden.

Im Rahmen unseres Projektes gilt es die folgenden Kriterien in die Auswahl einer geeigneten Darstellungsarteinfließen zu lassen:

• Steuerbarkeit: Es sollte möglich sein, den zeitlichen Fortschritt der Darbietung des Films abzuschätzen, umrechtzeitig vor Ankunft an der nächsten Haltestelle bereits die geeigneten Navigationselemente einblendenzu können.

• Kompatibilität: Neuere Flash-Funktionen sind nur mit neueren Flash-Plugins verfügbar. Werden diesegenutzt, läßt sich die erzeugte Flash-Applikation in Browsern mit älterem Plugin nicht darstellen (ohne daszuvor ein neueres Plugin nachinstalliert wird - evtl. muss Code in die Webseite eingefügt werden, der dieVersion des installierten Flash-Plugin prüft und entsprechende Instruktionen gibt). Dabei ist zu beachten,dass die neuestes Flash-Version 8 beispielsweise für Linux (noch) gar nicht verfügbar ist. Es wurdebeschlossen, dass wir dennoch durchaus die neueste Version benutzen können, da man davon ausgehenkann, dass sich demnächst alle Browser an die neue Version des weit verbreiteten Flash-Plugin anpassenwerden.

Die Dokumentation von Flash ist sehr umfangreich, allerdings scheint sie parallel zum Programm gewachsenund ist daher nicht in allen Bereichen so strukturiert, dass sie einem Einsteiger problemlose Orientierung inner-

Unterschiedliche Möglichkeitenzur Darstellung von Filmen

45

halb der mannigfachen Auswahl von Elementen erlaubt. So wird bei den zahlreichen Komponenten, die sich zurDarstellung von Filmsequenzen einsetzen lassen (etwa MovieClip+MovieClipLoader, Video-Komponen-te+NetStream, MediaDisplay, MediaPlayback, FLVPlayback) nicht auf Anhieb klar, in welchen Beziehungendiese zueinander stehen, und für welche Einsatzzwecke sie vorgesehen sind. Wir haben die folgenden Möglich-keiten näher unter die Lupe genommen:

6.4.2.1. FLVPlayback(kompletter Videoplayer)

Dies ist die einfachste Variante einen Flash-Film zu erstellen. Es wird lediglich ein vorgefertigter Videoplayer,der mit unterschiedlichen Skins verfügbar ist, verwendet und auf das vorhandene Flash-Dokument gelegt. Manmuss lediglich noch unter Paramter--> ContentPath den Pfad der jeweiligen FLV-Datei angeben.

6.4.2.2. Eingebettetes Video (MovieClip)

Unterschiedliche Möglichkeitenzur Darstellung von Filmen

46

In der obigen Abbildung erkennt man die Zeitleiste, wo jeder Frame aus dem Video ein Bild enhält. Die Einbet-tung von Video in eine SWF-Datei ermöglicht die Synchronisation mit anderen visuellen Effekten. Beispiels-weise können einem Video interaktive Elemente hinzugefügt werden. Allerdings geht die Einbettung mit einerbeträchtlichen Erhöhung der SWF-Dateigröße einher. Zur Erstellung von Cue-Points ist diese Variante sehrnützlich. Man kann dadurch an einem bestimmten Bild anhalten, um dort beispielsweise ein Event von einemButton ausführen zu lassen.

6.4.2.3. Videostreams (Video-Komponente + NetStream)

Als dritte Variante ist es möglich unter Flash ein Video-Objekt in der Bibliothek zu erstellen. Diesem Objektkann man einen Instanz-Namen zuweisen, so dass es mit ActionScript direkt angesprochen werden kann. Nunist es möglich ein NetStream-Objekt zu erzeugen und das Video diesem anzuhängen. Der Vorteil dieser Varian-te besteht darin, dass mit dem NetStream-Objekt das Streamen übers Internet gesteuert werden kann. Die nach-folgende Abbildung zeigt die fertige Applikation mit dem Video-Objekt.

Unterschiedliche Möglichkeitenzur Darstellung von Filmen

47

6.4.3. Gegenüberstellung von Javascript und Flash-ActionScript

Grundsätzlich kann man sagen, dass die beiden Sprachen Javascript und Actionscript gar nicht so verschiedensind. Wenn man eine der beiden Sprachen beherrscht oder schon grundlegende Vorkenntnisse besitzt ist es rela-tiv leicht die andere zu erlernen. Zur Steuerung eines Films ist Actionscript nach unserer Meinung besser geeig-net, da man so den Film direkt manipulieren und beispielsweise direkt mit Hilfe von Event-Handlern steuernkann. Im Laufe unserer Recherchen haben wir auch noch eine alternative Vorgehensweise im Web gefunden.Die sogenannte "LiveConnect"-Kommunikation zwischen diesen beiden Skriptsprachen. Sie funktioniert grund-sätzlich in beide Richtungen. D.h.: Man hat über JavaScript Zugriff auf ActionScripts und damit das Verhalteneines eingebetteten Flash-Films. Umgekehrt können Sie mittels ActionScript aus einem Flash-Film herausJavaScript-Funktionen aufrufen. Über den Umweg von JavaScript können deshalb sogar mehrere Flash-Filmemiteinander kommunizieren. Dieses Verfahren sei aber nur am Rande erwähnt, da wir dies für unser Projektnicht weiter benötigt haben. Hier noch ein Link, wo die verschiedenen Möglichkeiten beschrieben werden.LiveConnect

6.5. Erstellung einer Steuerkomponente mit Flash

Beim Start präsentiert sich die Applikation dem Anwender wie folgt: auf der linken Seite werden die Filme dar-gestellt. Wird ein Verzweigungspunkt erreicht, werden Steuerelemente eingeblendet, die es der Benutzeringestatten, eine weitere Bewegung zu initiieren. Darunter befinden sich zwei Fortschrittsbalken, die den Anteilder geladenen Daten des aktuellen Films, sowie den Füllzustand des Buffers anzeigen. Auf der rechten Seitewird ein Übersichtsplan dargeboten, auf dem die aktuelle Position markiert wird.

Unterschiedliche Möglichkeitenzur Darstellung von Filmen

48

6.5.1. Aufbau des Programms

Die Flash-Applikation verteilt die anfallenden Aufgaben (Laden und Darstellen der Filme, Ein- und Ausblendenvon Steuerkomponenten, Repräsentation der möglichen Wege, Darstellung der Übersichtskarte) auf verschiede-ne Klassen. Diese werden im folgenden beschrieben.

6.5.1.1. Klasse GeoCoord

Die Klasse GeoCoord dient zur Repräsentation von geographischen Koordinaten (Angaben in Längen- undBreitengraden). Sie wird an verschiedenen Stellen im Programm benutzt, etwa zur Angabe der Positionen dereinzelnen Verzweigungspunkte, aber auch zur Platzierung der Standortmarkierung auf dem Stadtplan.

Die Klasse stellt ferner einige Methoden bereit, die die Arbeit mit Koordinaten unterstützen: so können Abstandund Winkel zwischen zwei Punkten berechnet werden und eine String-Darstellung der Koordinate erzeugt wer-den.

6.5.1.2. Klasse Tour

Ein Objekt der Klasse Tour beschreibt einen Rundgang. Es enthält eine Liste der Verzweigungspunkte sowieAngaben zu möglichen Übergängen von einem Verzweigungspunkt zum nächsten. Darüberhinaus werden zuden einzelnen Punkten Metadaten, wie etwa geographische Koordinaten und eine verbale Beschreibungen (etwaStraßenamen) erfasst. Die Klasse implementiert also im wesentlichen einen Übergangsgraphen, wobei vonjedem Knoten aus maximal drei andere Knoten erreichbar sind (geradeaus/links/rechts).

Ein Tour -Objekt zeichnet stets einen Knoten (Blickwinkel) als aktuellen Knoten aus. Ferner kann ein Zielkno-ten angegeben werden, wenn ein solcher durch die Steuerkomponente ausgewählt worden ist. Ist der Zielpunkterreicht (d.h. der entsprechende Videoclip ist vollständig dargestellt worden), kann durch Aufruf der Methodemove_to_target() der Übergang zu diesem Knoten signalisiert werden.

Ist ein Zielobjekt gesetzt, und ist der Anteil der zurückgelegten Strecke bekannt, so kann ein Tour -Objekt ver-schiedene Beschreibungen der aktuellen Position (zwischen Start und Ziel) errechnen: die aktuelle Position (alsgeographische Koordinate), den Blickwinkel und eine verbale Beschreibung.

6.5.1.3. Klasse MovieControl

Die Klasse MovieControl dient zum Kontrollieren der Darstellung von VideoStreams sowie zur Interaktiven

Unterschiedliche Möglichkeitenzur Darstellung von Filmen

49

Steuerung.

Die Klasse MovieContro l arbeitet mit der Klasse Tour zusammen: Sie erhält von Tour die Information, wel-che Verzweigungen an einem Haltepunkt möglich sind, und lädt aufbauend auf diesen Informationen die geeig-neten Filme nach. Umgekehrt aktualisiert sie den Standort im Tour-Objekt, sobald ein Film vollständig darge-stellt wurde (wenn also ein Haltepunkt erreicht wurde).

Die Klasse MovieControl verfügt über Steuerelemente (Links-/Rechts-/Geradaus-Button), die genutzt wer-den können, um an Haltepunkten die gewünschte Verzweigung zu wählen. Diese Steuerelemente werden deakti-viert, wenn sie gerade nicht benötigt werden (wenn ein Film dargestellt wird). Sie werden rechtzeitig vor einemHaltepunkt wieder aktiviert um eine flüssige Navigation zu ermöglichen. Dabei werden nur solche Steuerele-mente eingeblended, die gemäß der Angaben des Tour -Objektes eine gültige Verzweigungsoption darstellen.

6.5.1.4. Klasse Stadtplan

Die Klasse Stadtplan dient zur Darstellung einer (zweidimensionalen) Übersichtskarte. Sie kann mit einerbeliebigen Graphik (etwa einem Luftbild oder einem Stadtplan) initialisiert werden. Bei der Initialisierung müs-sen die geographischen Koordinaten der linken oberen und rechten unteren Ecke angegeben

Ein Stadtplan -Objekt kann eine Markierung darstellen, die den aktuellen Standort und Blickwinkel kenn-zeichnet. Die Gestalt der Markierung kann in Form eines Flash-Movie-Clip Objektes angegeben werden, diePositionierung erfolgt durch Angabe der geographischen Koordinaten (funktioniert auch für solche, die außer-halb der Karte liegen;-)

6.5.2. Bewegungstweening mit Flash

Für unsere Steuerelemente, die aus den 3 ein- und ausblendenden Pfeilen bestehen, haben wir ein Bewegungs-Tweening mit einem MovieClip-Objekt erstellt. Das Verfahren zur Erstellung eines solchen Tweeningsgeschieht wie folgt:

• Erstellung des MovieClips in der Bibliothek. In unserem Fall ist dies der Pfeil, den wir aus der Bibliothekper ""Drag and Drop"" auf der Bühne platzieren. Somit haben wir eine Instanz des MovieClips, mit dem wirarbeiten können.

• In der Zeitleiste können wir uns zwei Bilder in Schlüsselbilder konvertieren. Dies sind die beiden Zeitpunk-te, bei denen wir den Pfeil einmal sichtbar und ein andermal unsichtbar erscheinen lassen.

Damit ist der Bewegungs-Tween erstellt und nun gilt es den MovieClip in unsere Applikation einzubauen bzw.mit loadMovie zu laden.

Unterschiedliche Möglichkeitenzur Darstellung von Filmen

50