SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
52   6. PROZEDURALE GEBÄUDEGENERIERUNG
7CityEngine
                                                                    User Manual


7.1 Die Oberfäche
Das Programm wird mit dem Kommando CityEngine gestartet. Abbildung 7.1 zeigt einen
Screenshot, nachdem ein Parameterfile geladen wurde, und anschliessend ein Strassennetzwerk
erzeugt wurde.




      Abbildung 7.1:       Die Oberfläche der CityEngine.

Das User Interface ist in 3 Module unterteilt, die alle eine eigene Buttonliste, einen Workspace,
ein Parameterpanel und (falls nötig) eine Timeline zur Verfügung haben. Die 3 Module sind:
   • LSystem (Strassennetzwerkerzeugung)
   • Streets (Strasseneditor)
   • Allotments (Parzellierung und Gebäudegenerierung)
Das gewünschte Modul kann über die Modulliste angewählt und aktiviert werden (ShortCuts:
Funktionstasten F1-F3).


                                               53
54                                                               7. CITYENGINE USER MANUAL


7.1.1 Workspace
Der Workspace dient zum Betrachten und Editieren der dem jeweili-
gen Modul zugehörigen Daten. Alle Eingabebilder können hier mit
der richtigen Skalierung dargestellt werden. Die Steuerung des
Workspace bleibt in allen Modulen gleich. Befindet sich die Maus
über dem Workspace werden in der Informationline die Koordinaten
und der Wert (0 bis 1) des aktiven Hintergrundbildes angezeigt. Der
Ursprung (0,0) ist links unten. Mit den Scrollbars oder der mittleren
Maustaste kann gescrollt werden. Drückt man die rechte Maustaste
erscheint das in Abbildung 7.2 dargestellte Menu. Der untere Teil des
Menus ist für das Zooming verantwortlich (Shortcuts für Zoom In
und Zoom Out: Ctrl-+ und Ctrl--). Im oberen Teil kann eines der
Hintergrundbilder zur Anzeige ausgewählt werden. Da Tk für die
Bilddarstellung verantwortlich ist, ist es ratsam, wenn sehr nah        Abbildung 7.2:
herangezoomt wurde, das Hintergrundbild auszuschalten (Eintrag          Workspace-Menu
None). In der mittleren Sektion des Menus können die Kontrollbilder
der Regeln für das L-System, welches die Strassennetzwerke generi-
ert, angezeigt werden.

7.1.2 File-Menu und Preferences
Im File-Menu (Abbildung 7.3) können die Parameterfiles (Endung:
.par), welche die Daten eines ganzen Projektes verwalten, geladen
und gespeichert werden (durch die ersten Einträge des Menus oder
die beiden Buttons       und ). In der nächsten Sektion können
Anzeigeoptionen für den Workspace eingestellt werden. Man kann
anwählen, welche Daten angezeigt werden sollen, da zum Teil in
Modulen mehrere Datentypen speziell dargestellt werden. Über den
Eintrag Preferences kann ein Fenster mit allgemeinen Einstellungen
geöffnet werden.
   Die 19 Parameter im Preferences-Fenster werden auf dieselbe Art
                                                                         Abbildung 7.3:
dargestellt wie in einem Parameterpanel. In diesem Fenster können
                                                                            File-Menu
Werte eingestellt werden, die von allen 3 Modulen benötigt werden.
Die beiden wichstigsten Parameter sind Länge und Breite des Work-
spaces in Metern. Diese Werte werden nicht nur zur Anzeige benutzt, sondern werden vom
gesamten System immer wieder abgefragt. Weiter können hier die Pfäde zu allen Eingabebil-
dern (Populationsdichte, Elevation etc.) editiert werden. Die Parameter der in allen Modulen
benötigten Graph-Datenstruktur sollten nur in Extremfällen editiert werden. Bei Änderungen
der Parameter sollte das Parameterfile abgespeichert und neu geladen werden, da viele Klassen
neu instanziert werden müssen. Auch kann im Preferences-Fenster die Auflösung der Ausgabe-
bilder aller Module eingestellt werden (diese Parameter können auch nachträglich verändert
werden).

7.2 Strassennetzwerkerzeugung (LSystem-Modul)
Das LSystem-Modul, welches bei Programmstart aktiv ist, dient zur Erzeugung der Strassen-
netzwerke. Mit dem Button wird das Axiom (und beim ersten Start das Diffusionssystem)
initialisiert (Shortcut: i). Mit dem zweiten Button wird das L-System gestartet (Shortcut: r)
und mit dem Button wird nur ein Ersetzungschritt im L-System durchgeführt (Shortcut: o).
7.2 STRASSENNETZWERKERZEUGUNG (LSYSTEM-MODUL)                                                55


Die Generierung eines Strassennetzwerks für eine Region von ca. 100 Quadratkilometern
dauert etwa 10 Sekunden. Das erzeugte Strassennetzwerk wird danach im Workspace darge-
stellt (Abbildung 7.1). Highways werden dicker gezeichnet als Streets.

7.2.1 LSystem-Menu
Die ersten drei Einträge des LSystem-Menus (Abbildung 7.4) dienen
derselben Funktion wie die drei oben schon erwähnten Buttons
dieses Moduls. Eingeschaltet bewirkt die Option Save Cells Animation,
dass nach jedem Ersetzungschritt ein Bild des Diffusionsystems
abgespeichert wird. Die TIFF-Bilder werden im Projektverzeichnis
im Ordner images abgelegt. Die Auflösung kann im Preferences-
Fenster gewählt werden. Das Kommando View Cells Animation startet
den Animationsplayer von Maya (fcheck) und lädt die Animation.
Die unterste Sektion des Menus ist dynamisch und enthält soviele           Abbildung 7.4:
Einträge, wie das L-System Regeln hat. Durch Anwählen eines Ein-           LSystem-Menu
trags wird ein Parameterfenster eines Ruleparameterfiles geöffnet.
Die Reihenfolge dieser Menu-Einträge entspricht der Reihenfolge
der Regeln im LSystem-Parameterpanel.

7.2.2 Timeline
Nachdem ein Strassennetzwerk generiert wurde, kann in der Timeline der maximale
Ersetzungsschritt gewählt werden, der angezeigt werden soll. Klickt man mit der linken
Maustaste auf die Timeline, bewegt sich der Timeslider um einen Ersetzungschritt in Richtung
des Mauscursors (Shortcuts: Left/Right). Wird die Maus gleichzeitig bewegt, springt der
Timeslider direkt zum Mauscursor und der Timeslider verhält sich wie eine Scrollbar. Klickt
man die rechte Maustaste, wird die Entwicklung des Strassennetzwerks im Animationsmodus
gezeigt (gestoppt wird durch nochmaliges Klicken der rechten Maustaste). Die Timeline dient
auch als Progressbar für das L-System. Mit der mittleren Maustaste setzt man den maximalen
Ersetzungsschritt, der vom L-System berechnet werden soll. Die Bedienung durch die mittlere
Taste gestaltet sich gleich wie mit der linken Taste (Shortcuts: Shift Left/Right). Dieser
Maximalwert wird durch einen vertikalen, weissen Strich dargestellt. Im Gegensatz zum
Timeslider wird der numerische Wert hier nicht in der Timeline angezeigt, sondern im Para-
meterpanel (Max_Derivation_Step), wo er auch via Tastatur verändert werden kann. Startet man die
Berechnung eines L-Systems, wird die Timeline zur Progressbar: Der horizontale, weisse
Balken wächst bis zum gewählten Maximalwert (siehe Abbildung 7.1).

7.2.3 Parameterpanel
Im zugehörigen Parameterpanel befinden sich allgemeine Einstellungen zum L-System wie die
Anzahl der gebrauchten Regeln und die Pfade derer Kontrollbilder, sowie Ruleparameterfiles
(Endung: .rp). Es können beliebig viele Regeln beliebig vieler Typen aktiv sein. Die Parameter,
die mit Insertion beginnen, werden zur Steuerung des selbstsensitiven Teils des L-Systems
benötigt. Danach folgen die Parameter des Diffusionssystems und die Daten des Axioms. Das
Axiom kann auch im Workspace bestimmt werden, indem mit der linken Maustaste eine Linie
bzw. Strasse gezeichnet wird. Die restlichen Parameter werden zur Kontrolle des umgebungs-
sensitiven Teil des L-Systems benötigt. Oft werden Zufallszahlengeneratoren definiert. Diese
sind meistens durch drei Parameter definiert: einem Seed, einem Hauptwert und einer Standard-
abweichung, falls es sich um eine gaussverteilte Zufallszahl handelt. Wird ein Zufallszahlen-
generator benötigt, der normalverteilte Zahlen erzeugt, werden meistens folgende drei
56                                                                  7. CITYENGINE USER MANUAL


Parameter verlangt: ein Seed, ein Minimalwert und ein Maximalwert. Ansonsten sollte die
Bedeutung der Parameter anhand derer Namen und mit Hilfe von Kapitel 4 oder dem Imple-
mentationsbeschrieb (Anhang A.2) nachvollziehbar sein.
   Will man das Verhalten des L-Systems beeinflussen, sollte man hier beginnen. Zuerst sollte
die Parameter des selbstsensitiven Teils editiert werden, da das Einfügen von Strassen in den
Graphen durchgeführt wird und keine anderen Parameter den Vorgang beeinflussen. Hat man
akzeptable Werte gefunden, kann man den umgebungssensitiven Teil des L-Systems editieren.
Da hier Zufallszahlengeneratoren aktiv sind, sollte man sich erst mit den Parameterwerten
zufrieden geben, wenn gute Resultate mit mehreren Seeds erzeugt werden konnten. Falls ein
Parametereintrag den Fokus hat, d.h. der Mauszeiger befindet sich über dem Eingabefeld, wird
durch Drücken der Return-Taste der Wert des Parameters um eins erhöht und automatisch das
L-System neu initialisiert und gestartet. Dieser Shortcut eignet sich hervorragend um ver-
schiedene Seeds zu testen. Anschliessend können die Parameter der Regeln editiert werden.

7.2.4 Rule Preferences
In einem Ruleparameter-Fenster werden die Parameter eines Ruleparameterfiles angezeigt. Der
oben erwähnte Shortcut um Seeds zu testen funktioniert auch hier. Editiert man die Parameter
einer Regel, muss man vorsichtig sein, dass die Änderungen nicht vom umgebungssensitiven
Teil abgefangen werden. Setzt man beispielsweise eine Topological Rule neu ein, wird diese
nur flache und sehr steile Strassen erzeugen. Dadurch wird die umgebungssensitive Überprü-
fung problematisch, falls die Werte von Elevation_Threshold_Highway und Elevation_Threshold_Road im
Parameterpanel nicht angepasst wurden. Zuerst sollte immer das Verhalten der Highways edit-
iert werden. Dies kann effizient durchgeführt werden, indem man den beiden Parametern
Road_Branch_Delay_Min und Road_Branch_Delay_Max hohe Wert gibt (diese Parameter kommen in jeder
Rule vor), und das L-System nur ca. 300 Ersetzungsschritte generieren lässt. So werden
bestimmt alle Highways und keine Streets berechnet. Danach können die Streets editiert werden
(diese haben keinen Einfluss auf die Highways).
   Auch hier gilt: aufgrund des Namens eines Parameters kann auf dessen Bedeutung geschlos-
sen werden. Da alle Regeln auf der Western Rule basieren, wurden auch alle Parameterfiles der
anderen Regeln aus demjenigen der Western Rule abgeleitet. Der Radial Rule wurden beispiels-
weise nur die beiden Parameter, die das Zentrum definieren, hinzugefügt. Das Set der Grid Rule
wurde um die Parameter erweitert, die das Grid definieren. Die Topological Rule hat zwei
Schwellwerte zusätzlich, welche verantwortlich dafür sind, ab welcher Steigung die Topologi-
cal Rule aktiv ist (d.h. auf flachem Gebiet wirkt nur eine Western-Rule).

7.3 Strasseneditor (Streets-Modul)
Dieses Modul dient dem nachträglichen Editieren der generierten Strassen. Mit dem ersten
Button ( ) kann das Strassennetzwerk aus dem L-System-Modul in das Streets-Modul über-
nommen werden. Abbildung 7.5 zeigt einen Screenshot, indem auch die Knoten des Graphen
gezeichnet werden (Option Show Crossings im File-Menu eingeschaltet)
Mit der linken Maustaste können im Workspace Strassen selektiert werden. Durch nochmaliges
Anwählen werden sie wieder aus der Selektionsliste gelöscht. Drückt man die Shift-Taste und
die linke Maustaste gleichzeitig, kann der dem Mauscursor nächste Knoten verschoben werden.
Im Parameterpanel können Schwellwerte für das Smoothing und Parameter für das Berechnen
von TIFF-Bildern des Graphen eingestellt werden. Die Timeline ist eine reduzierte Version der
Timeline des L-System-Moduls, da weder Progressbar noch Animationsmodus in diesem
Modul benötigt werden.
7.4 PARZELLIERUNG UND GEBÄUDEGENERIERUNG (ALLOTMENTS-MODUL)                                57




      Abbildung 7.5:       Das Strasseneditor-Modul.

7.3.1 Streets-Menu
Ist ein Strassennetzwerk geladen ( oder Get Streetnetwork), kann es als
Graphfile (Endung: .gra) abgespeichert werden. Ein Graphfile kann
jederzeit, unabhängig vom L-System-Modul, wieder geladen wer-
den. Die zweite Sektion des Menus dient dem Editieren von Strassen,
wobei durch Drücken des Button          selektierte Strassen gelöscht
werden (Shortcut: Delete). Die dritte Sektion ist verantwortlich für
das Smoothing. Der Befehl Smooth selected Streets führt den Smooth-
ing-Algorithmus nur auf den selektierten Kanten und derer Endkno-
ten aus. Der Button hat die gleiche Funktion wie Smooth all Streets.
Will man vom Strassennetzwerk ein berechnetes Bild mit Anti-
Aliasing (beispielsweise als Textur) oder eine ganze Sequenz der
Entwicklung       abspeichern,    kann     man     Render TIFF    bzw.
Render TIFF Sequence anwählen. Die Bilder werden im Projektverzeich-      Abbildung 7.6:
nis im Ordner images abgelegt. Die beiden View...-Befehle starten          Streets-Menu
fcheck (wie im L-System-Modul).

7.4 Parzellierung und Gebäudegenerierung (Allotments-Modul)
Das Allotments-Modul ist zuständig für die Extraktion der Häuserblocks aus einem Strassen-
netzwerk, die Unterteilung in Gebäudegrundrisse und das Konstruieren von Gebäuden. Der
Button       extrahiert aus dem im Streets-Modul geladenen Graphen die Häuserblocks
(Polygone). Die Suchtiefe kann im Parameterpanel angegeben werden (Max_Cycle_Search_Depth).
Mit dem Button können die Strassenkorridore erzeugt werden, indem die Polygone verklein-
ert werden. Abbildung 7.7 zeigt einen Screenshot, nachdem die Polygone in Häuserblocks
unterteilt wurden (mit Button ).
Im Parameterpanel befinden sich Kontrollwerte der oben erwähnten Operationen und Einstel-
lungen zur Gebäudegenerierung. Besonders erwähnenswert ist der Parameter
Max_House_Ground_Area, welcher das Abbruchkriterium der Subdivision neben der Populations-
dichte entscheidend mitbestimmt.
58                                                               7. CITYENGINE USER MANUAL




     Abbildung 7.7:       Das Allotments-Modul.

7.4.1 Allotments-Menu
Der Eintrag Get Blocks extrahiert die Häuserblocks (wie Button ).
Diese können als Blockfile (Endung: .p) abgespeichert und geladen
werden. Mit gedrückter Shift-Taste und der linken Maustaste kann
eine Bounding Box im Workspace definiert werden. Ist diese aktiv,
werden nur Blocks innerhalb der Bounding Box abgespeichert. Man
kann sie wieder deaktivieren, indem man mit gedrückter Shifttaste
die linke Maustaste klickt (ohne die Maus dabei zu bewegen).
Cut Streets erzeugt die Strassenkorridore. Die dritte Sektion des
Menus ist verantwortlich für die Unterteilung der Häuserblocks: Ist
der Eintrag Inside Lots eingeschaltet, werden Gebäudegrundrisse, die
keine Kante an einer Strasse haben, nicht verworfen. Die Option
Convert Rectangle bewirkt, dass viereckige Polygone, die nahezu eine    Abbildung 7.8:
rechteckige Form haben in Rechtecke verwandelt werden. Dazu wird        Allotments-Menu
eine In-Box berechnet. Die Unterteilung wird duch Anwählen von
Divide into Lots durchgeführt. Die daraus entstanden Gebäudegrund-
risse können als Lotfile (Endung: .p+) abgespeichert und geladen
werden.

7.4.2 Buildings-Menu
Der erste Eintrag ruft für jeden Grundriss eines der Shape Grammar
L-Systeme auf und speichert diese als Stringfiles. Die verschiedenen
L-Systeme können mit dem Pythonskript LSystemControl.py
kontrolliert werden. In dem Skript werden die L-Systeme den Typen
(Residential, Commercial oder Industrial) zugeordnet und die Wahr-
scheinlichkeit ihres Auftretens innerhalb eines Types kann einge-
tragen werden. Mit Attach Shapestrings werden die generierten
Stringfiles der Polygondatenstruktur zugewiesen. Der Button ruft
                                                                        Abbildung 7.9:
diese beiden Befehle nacheinander auf. Die Strings werden erst inter-
                                                                        Buildings-Menu
pretiert, wenn die Gebäude abgespeichert werden. Der Eintrag
Generate Shapestrings (one Rule) verwendet nur das im Parameterpanel
angegebene Shape Grammar L-System (Parameter Building_Rule_File).
Der Befehl Attach Shapestring (File) weist allen Gebäudegrundrissen
7.4 PARZELLIERUNG UND GEBÄUDEGENERIERUNG (ALLOTMENTS-MODUL)                                59


denselben Shape String zu. Dieser kann auch im Parameterpanel angegeben werden (Parameter:
Shape String File). Die letzten beiden Befehle dienen vor allem Testzwecken, wenn neue Shape
Grammar L-Systeme entwickelt werden. Ist die Option Procedural Texturing ausgeschaltet, werden
der Geometrie Mapping-Texturkoordinaten zugewiesen (siehe B.9).
60   7. CITYENGINE USER MANUAL
8Resultate


In diesem Kapitel werden einige Bilder präsentiert, die mit der CityEngine bzw. Maya erzeugt
wurden. Die entsprechenden vollständigen Sequenzen sind im zugehörigen Siggraph-Video zu
sehen. Im ersten Beispiel wurde eine der Stadt Zürich ähnliche Topologie benutzt, im zweiten
Beispiel wurde versucht, den New Yorker Stadtteil Manhattan genau zu rekonstruieren.


8.1 Zürich

Das Gebiet ist 20km lang, 20 km breit und maximal 600m hoch. Abbildung 8.1 illustriert das
Strassennetzwerk, dessen Generierung etwa 20 Sekunden dauerte. Die Eingabebilder Wasser-
Land und Parks sind entsprechend eingefärbt (weitere Eingabebilder sind in Abbildung 3.2
dargestellt). Der Wachstum beginnt in der Mitte der zyklisch angeordneten Stadt (→ Radial
Rule). In den Gebieten mit stark steigender Elevation folgt der Wachstum den Gesetzen der
Topographical Rule. In diesem Beispiel ist gut zu erkennen, wie der Wachstum der Strassen
durch die nach aussen niedrigere Populationsdichte bedingt, entsprechend abnimmt und so nur
noch Agglomerationen erzeugt werden (→ Open L-System).

   In Abbildung 8.2 und 8.3 sind Renderings einer Szene mit ungefähr 37’000 Gebäuden zu
sehen. Die Bilder wurden mit Alias|Wavefronts Maya berechnet. Die Generierung der Gebäu-
deformen (d.h. die Erzeugung aller 37’000 Shape Grammar Strings durch die L-Systeme)
dauerte ca. 20 Minuten, das Interpretieren und Einlesen der Daten in Maya dauerte nochmals 20
Minuten (Prozessor: Mips R4400, 350MHz). Die Bilder wurden nur mit dem schnellen Ray-
casting-Verfahren berechnet. Die Schatten wurden mit einer Shadowmap erzeugt. Die durch-
schnittliche Renderzeit lag bei 4 Minuten, wobei die Anti-Ailasing Qualität sehr niedrig
eingestellt wurde und zusätzlich Depthmap und 2D-Motionblur (für die Siggraph-Animation)
berechnet wurde. Als Renderplattform kam eine Onyx 2 mit 8 Prozessoren und 4 Gigabyte Spe-
icher zum Einsatz. Für das Rendern dieser Szene werden etwa 450 Megabyte Speicher benötigt,
und da Maya die Szene für jeden Prozessor einzeln in den Speicher lädt, werden beim Render-
ing mit 8 Prozessoren 3.4 Gigabyte Speicher benutzt.




                                             61
62                                                                      8. RESULTATE




     Abbildung 8.1:   Das generierte Strassennetz von Zürich. Oben: Entwicklung der
                      Highways nach 50 und 100 Ersetzungsschritten. Unten: Das
                      endgültige Strassennetz mit Highways und Streets (551. Schritt).
8.1 ZÜRICH                                                                       63




     Abbildung 8.2:   In Maya gerenderte Bilder einer Stadt, die mit der CityEngine
                      erzeugt wurde.
64                                                                               8. RESULTATE




     Abbildung 8.3:       Weitere Renderings derselben Stadt wie in Abbildung 8.2. Der
                          Nebel wurde mit einer Depthmap erzeugt.

8.2 Manhattan
Das Gebiet ist 12 km lang und 5 km breit. Abbildung 8.4 illustriert das Strassennetzwerk, dessen
Generierung etwa 10 Sekunden dauerte. Das Wachstum beginnt im vorderen Teil der Insel und
folgt zuerst den Gesetzen der Western Rule und anschliessend denen der Grid Rule. Die Local
Constraints sind für die Highways entlang der Küstenlinie verantwortlich.
    In Abbildung 8.5 und 8.6 sind Maya-Renderings einer Szene mit ungefähr 10’000 Gebäuden
zu sehen. Die Generierung der Gebäudeformen dauerte ca. 15 Minuten, das Interpretieren und
Einlesen der Daten in Maya dauerte nochmals 15 Minuten. Die Gebäudeformen sind in diesem
Beispiel wesentlich komplexer als bei der Zürich-Szenerie (beispielsweise sind die auf den
Dächern Kamine und Geländer zu sehen). Die Bilder wurden mit Raytracing mit Reflektions-
tiefe 2 und Schatten berechnet (durchschnittliche Renderzeit: 6 Minuten).
8.2 MANHATTAN                                                                      65




    Abbildung 8.4:   Rekonstruiertes Manhattan. Oben: Entwicklung des Strassen-
                     netzwerkes nach 28 und 142 Ersetzungsschritten. Mitte: Resultier-
                     endes Strassennetzwerk (nach 228 Schritten). Unten: Die echte
                     Strassenkarte zum Vergleich.
66                                                                      8. RESULTATE




     Abbildung 8.5:   Renderings vom virtuellen Manhattan. Das oberste Bild zeigt die
                      Spiegelung der Stadt in einem stark reflektierenden Fenster (mit
                      Bumpmap).
8.2 MANHATTAN                                                                      67




    Abbildung 8.6:   Weitere Renderings aus dem virtuellen Manhattan (Fortsetzung von
                     Abbildung 8.5).
68   8. RESULTATE
9Schlussbemerkungen


9.1 Fazit
Im momentanen Stand der Entwicklung, indem sich die CityEngine befindet, eignet sie sich gut
für Anwendungen in Filmproduktionen. Die CityEngine erfüllt fast alle Anforderungegen die
eine Filmproduktion verlangt: Das Modeling ist schnell (d.h. billig), die ganze Pipeline sehr
flexibel und mit dem Output können visuell ansprechende Bilder produziert werden. Der
benötigte Zeitaufwand für Letzteres (siehe Kap 8, Resultate) ist der Schwachpunkt der City-
Engine. Im nächsten Unterkapitel findet man eine kurze Diskussion über Level of Detail, durch
dessen Verwendung die Renderzeiten um einiges verkürzt werden könnten. Die CityEngine
kann in jeder Phase einer Filmproduktion benutzt werden: Das Design der Stadt kann mit ihrer
Hilfe entworfen werden; sie eignet sich geradezu hervorragend für das Erstellen von (Video-)
Storyboards, und natürlich kann sie zum Erstellen der endgültigen Aufnahme verwendet wer-
den. Im CAAD kann die CityEngine ebenfalls gut verwendet werden: Einerseits als Tool für die
Erzeugung von Hintergrundgeometrien und andererseits können mit der CityEngine Shape
Grammar auf einfache Weise Gebäude entworfen werden.
   Um die CityEngine in der Game Industrie zu benutzen, müsste vor allem das Modeling der
Strassenzonen verbessert werden. Im Film, wo die Einstellungen bekannt sind, können nötige
Details wie beispielsweise Strassenlaternen ohne grossen Aufwand manuell platziert werden. In
einem 3D-Game müsste dies im ganzen Stadtmodel gemacht werden (falls der Spieler die
Freiheit hat, überall hinzugehen). Ein weiterer Nachteil der CityEngine ist der fehlende Level
of Detail, welcher in der Game Industrie ein Muss ist. Dass die Strassennetzwerkerzeugung im
Bereich des Urban Streetnetwork Modeling verwendet wird, ist momentan eher unwahrschein-
lich, da bautechnische Strassenmodelle, wie beispielsweise das Bauen einer Einfahrt, nicht in
der CityEngine implementiert wurden.

9.1.1 Strassennetzwerkerzeugung
Der implementationstechnische aufwendigste Teil der CityEngine, die Strassennetzwerkerzeu-
gung, liefert zufriedenstellende Ergebnisse. Vor allem die Kontrolle des L-Systems durch den
umgebungssensitiven und selbstsensitiven Teil, sowie die Integration neuer Regeln im
L-System funktionieren sehr gut. Die Bewertung der Regeln hängt davon ab, wie sie program-
miert wurden, und in welchem Anwendungsbereich die CityEngine eingesetzt werden soll.
Betrachtet man die Strassennetzwerkerzeugung als Tool, welches Gebäude realistisch in einer


                                             69

Weitere ähnliche Inhalte

Ähnlich wie Master thesis pascal_mueller04

Abaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversionAbaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversionimranmahsud
 
TYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerkTYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerkdie.agilen GmbH
 
Datawrapper Tutorial
Datawrapper TutorialDatawrapper Tutorial
Datawrapper TutorialTil Man
 
WAC Auslegungsprorgamm KWL
WAC Auslegungsprorgamm KWLWAC Auslegungsprorgamm KWL
WAC Auslegungsprorgamm KWLWestaflex
 
Master thesis pascal_mueller05
Master thesis pascal_mueller05Master thesis pascal_mueller05
Master thesis pascal_mueller05guest39ce4e
 
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkTYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerkTYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkdie.agilen GmbH
 
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkTYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkdie.agilen GmbH
 

Ähnlich wie Master thesis pascal_mueller04 (12)

Abaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversionAbaqus tutorial20060721 endversion
Abaqus tutorial20060721 endversion
 
TYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerkTYPO3 CMS 7.2 - Die Neuerungen - pluswerk
TYPO3 CMS 7.2 - Die Neuerungen - pluswerk
 
Datawrapper Tutorial
Datawrapper TutorialDatawrapper Tutorial
Datawrapper Tutorial
 
WAC Auslegungsprorgamm KWL
WAC Auslegungsprorgamm KWLWAC Auslegungsprorgamm KWL
WAC Auslegungsprorgamm KWL
 
Master thesis pascal_mueller05
Master thesis pascal_mueller05Master thesis pascal_mueller05
Master thesis pascal_mueller05
 
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerkTYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
TYPO3 CMS 7 LTS - Die Neuerungen - pluswerk
 
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerkTYPO3 CMS 8.0 - Die Neuerungen - pluswerk
TYPO3 CMS 8.0 - Die Neuerungen - pluswerk
 
ORCA AVA 22 - Neue Features
ORCA AVA 22 - Neue FeaturesORCA AVA 22 - Neue Features
ORCA AVA 22 - Neue Features
 
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
 
Beschreibung
BeschreibungBeschreibung
Beschreibung
 
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerkTYPO3 CMS 8.4 - Die Neuerungen - pluswerk
TYPO3 CMS 8.4 - Die Neuerungen - pluswerk
 
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerkTYPO3 CMS 7.0 - Die Neuerungen - pluswerk
TYPO3 CMS 7.0 - Die Neuerungen - pluswerk
 

Master thesis pascal_mueller04

  • 1. 52 6. PROZEDURALE GEBÄUDEGENERIERUNG
  • 2. 7CityEngine User Manual 7.1 Die Oberfäche Das Programm wird mit dem Kommando CityEngine gestartet. Abbildung 7.1 zeigt einen Screenshot, nachdem ein Parameterfile geladen wurde, und anschliessend ein Strassennetzwerk erzeugt wurde. Abbildung 7.1: Die Oberfläche der CityEngine. Das User Interface ist in 3 Module unterteilt, die alle eine eigene Buttonliste, einen Workspace, ein Parameterpanel und (falls nötig) eine Timeline zur Verfügung haben. Die 3 Module sind: • LSystem (Strassennetzwerkerzeugung) • Streets (Strasseneditor) • Allotments (Parzellierung und Gebäudegenerierung) Das gewünschte Modul kann über die Modulliste angewählt und aktiviert werden (ShortCuts: Funktionstasten F1-F3). 53
  • 3. 54 7. CITYENGINE USER MANUAL 7.1.1 Workspace Der Workspace dient zum Betrachten und Editieren der dem jeweili- gen Modul zugehörigen Daten. Alle Eingabebilder können hier mit der richtigen Skalierung dargestellt werden. Die Steuerung des Workspace bleibt in allen Modulen gleich. Befindet sich die Maus über dem Workspace werden in der Informationline die Koordinaten und der Wert (0 bis 1) des aktiven Hintergrundbildes angezeigt. Der Ursprung (0,0) ist links unten. Mit den Scrollbars oder der mittleren Maustaste kann gescrollt werden. Drückt man die rechte Maustaste erscheint das in Abbildung 7.2 dargestellte Menu. Der untere Teil des Menus ist für das Zooming verantwortlich (Shortcuts für Zoom In und Zoom Out: Ctrl-+ und Ctrl--). Im oberen Teil kann eines der Hintergrundbilder zur Anzeige ausgewählt werden. Da Tk für die Bilddarstellung verantwortlich ist, ist es ratsam, wenn sehr nah Abbildung 7.2: herangezoomt wurde, das Hintergrundbild auszuschalten (Eintrag Workspace-Menu None). In der mittleren Sektion des Menus können die Kontrollbilder der Regeln für das L-System, welches die Strassennetzwerke generi- ert, angezeigt werden. 7.1.2 File-Menu und Preferences Im File-Menu (Abbildung 7.3) können die Parameterfiles (Endung: .par), welche die Daten eines ganzen Projektes verwalten, geladen und gespeichert werden (durch die ersten Einträge des Menus oder die beiden Buttons und ). In der nächsten Sektion können Anzeigeoptionen für den Workspace eingestellt werden. Man kann anwählen, welche Daten angezeigt werden sollen, da zum Teil in Modulen mehrere Datentypen speziell dargestellt werden. Über den Eintrag Preferences kann ein Fenster mit allgemeinen Einstellungen geöffnet werden. Die 19 Parameter im Preferences-Fenster werden auf dieselbe Art Abbildung 7.3: dargestellt wie in einem Parameterpanel. In diesem Fenster können File-Menu Werte eingestellt werden, die von allen 3 Modulen benötigt werden. Die beiden wichstigsten Parameter sind Länge und Breite des Work- spaces in Metern. Diese Werte werden nicht nur zur Anzeige benutzt, sondern werden vom gesamten System immer wieder abgefragt. Weiter können hier die Pfäde zu allen Eingabebil- dern (Populationsdichte, Elevation etc.) editiert werden. Die Parameter der in allen Modulen benötigten Graph-Datenstruktur sollten nur in Extremfällen editiert werden. Bei Änderungen der Parameter sollte das Parameterfile abgespeichert und neu geladen werden, da viele Klassen neu instanziert werden müssen. Auch kann im Preferences-Fenster die Auflösung der Ausgabe- bilder aller Module eingestellt werden (diese Parameter können auch nachträglich verändert werden). 7.2 Strassennetzwerkerzeugung (LSystem-Modul) Das LSystem-Modul, welches bei Programmstart aktiv ist, dient zur Erzeugung der Strassen- netzwerke. Mit dem Button wird das Axiom (und beim ersten Start das Diffusionssystem) initialisiert (Shortcut: i). Mit dem zweiten Button wird das L-System gestartet (Shortcut: r) und mit dem Button wird nur ein Ersetzungschritt im L-System durchgeführt (Shortcut: o).
  • 4. 7.2 STRASSENNETZWERKERZEUGUNG (LSYSTEM-MODUL) 55 Die Generierung eines Strassennetzwerks für eine Region von ca. 100 Quadratkilometern dauert etwa 10 Sekunden. Das erzeugte Strassennetzwerk wird danach im Workspace darge- stellt (Abbildung 7.1). Highways werden dicker gezeichnet als Streets. 7.2.1 LSystem-Menu Die ersten drei Einträge des LSystem-Menus (Abbildung 7.4) dienen derselben Funktion wie die drei oben schon erwähnten Buttons dieses Moduls. Eingeschaltet bewirkt die Option Save Cells Animation, dass nach jedem Ersetzungschritt ein Bild des Diffusionsystems abgespeichert wird. Die TIFF-Bilder werden im Projektverzeichnis im Ordner images abgelegt. Die Auflösung kann im Preferences- Fenster gewählt werden. Das Kommando View Cells Animation startet den Animationsplayer von Maya (fcheck) und lädt die Animation. Die unterste Sektion des Menus ist dynamisch und enthält soviele Abbildung 7.4: Einträge, wie das L-System Regeln hat. Durch Anwählen eines Ein- LSystem-Menu trags wird ein Parameterfenster eines Ruleparameterfiles geöffnet. Die Reihenfolge dieser Menu-Einträge entspricht der Reihenfolge der Regeln im LSystem-Parameterpanel. 7.2.2 Timeline Nachdem ein Strassennetzwerk generiert wurde, kann in der Timeline der maximale Ersetzungsschritt gewählt werden, der angezeigt werden soll. Klickt man mit der linken Maustaste auf die Timeline, bewegt sich der Timeslider um einen Ersetzungschritt in Richtung des Mauscursors (Shortcuts: Left/Right). Wird die Maus gleichzeitig bewegt, springt der Timeslider direkt zum Mauscursor und der Timeslider verhält sich wie eine Scrollbar. Klickt man die rechte Maustaste, wird die Entwicklung des Strassennetzwerks im Animationsmodus gezeigt (gestoppt wird durch nochmaliges Klicken der rechten Maustaste). Die Timeline dient auch als Progressbar für das L-System. Mit der mittleren Maustaste setzt man den maximalen Ersetzungsschritt, der vom L-System berechnet werden soll. Die Bedienung durch die mittlere Taste gestaltet sich gleich wie mit der linken Taste (Shortcuts: Shift Left/Right). Dieser Maximalwert wird durch einen vertikalen, weissen Strich dargestellt. Im Gegensatz zum Timeslider wird der numerische Wert hier nicht in der Timeline angezeigt, sondern im Para- meterpanel (Max_Derivation_Step), wo er auch via Tastatur verändert werden kann. Startet man die Berechnung eines L-Systems, wird die Timeline zur Progressbar: Der horizontale, weisse Balken wächst bis zum gewählten Maximalwert (siehe Abbildung 7.1). 7.2.3 Parameterpanel Im zugehörigen Parameterpanel befinden sich allgemeine Einstellungen zum L-System wie die Anzahl der gebrauchten Regeln und die Pfade derer Kontrollbilder, sowie Ruleparameterfiles (Endung: .rp). Es können beliebig viele Regeln beliebig vieler Typen aktiv sein. Die Parameter, die mit Insertion beginnen, werden zur Steuerung des selbstsensitiven Teils des L-Systems benötigt. Danach folgen die Parameter des Diffusionssystems und die Daten des Axioms. Das Axiom kann auch im Workspace bestimmt werden, indem mit der linken Maustaste eine Linie bzw. Strasse gezeichnet wird. Die restlichen Parameter werden zur Kontrolle des umgebungs- sensitiven Teil des L-Systems benötigt. Oft werden Zufallszahlengeneratoren definiert. Diese sind meistens durch drei Parameter definiert: einem Seed, einem Hauptwert und einer Standard- abweichung, falls es sich um eine gaussverteilte Zufallszahl handelt. Wird ein Zufallszahlen- generator benötigt, der normalverteilte Zahlen erzeugt, werden meistens folgende drei
  • 5. 56 7. CITYENGINE USER MANUAL Parameter verlangt: ein Seed, ein Minimalwert und ein Maximalwert. Ansonsten sollte die Bedeutung der Parameter anhand derer Namen und mit Hilfe von Kapitel 4 oder dem Imple- mentationsbeschrieb (Anhang A.2) nachvollziehbar sein. Will man das Verhalten des L-Systems beeinflussen, sollte man hier beginnen. Zuerst sollte die Parameter des selbstsensitiven Teils editiert werden, da das Einfügen von Strassen in den Graphen durchgeführt wird und keine anderen Parameter den Vorgang beeinflussen. Hat man akzeptable Werte gefunden, kann man den umgebungssensitiven Teil des L-Systems editieren. Da hier Zufallszahlengeneratoren aktiv sind, sollte man sich erst mit den Parameterwerten zufrieden geben, wenn gute Resultate mit mehreren Seeds erzeugt werden konnten. Falls ein Parametereintrag den Fokus hat, d.h. der Mauszeiger befindet sich über dem Eingabefeld, wird durch Drücken der Return-Taste der Wert des Parameters um eins erhöht und automatisch das L-System neu initialisiert und gestartet. Dieser Shortcut eignet sich hervorragend um ver- schiedene Seeds zu testen. Anschliessend können die Parameter der Regeln editiert werden. 7.2.4 Rule Preferences In einem Ruleparameter-Fenster werden die Parameter eines Ruleparameterfiles angezeigt. Der oben erwähnte Shortcut um Seeds zu testen funktioniert auch hier. Editiert man die Parameter einer Regel, muss man vorsichtig sein, dass die Änderungen nicht vom umgebungssensitiven Teil abgefangen werden. Setzt man beispielsweise eine Topological Rule neu ein, wird diese nur flache und sehr steile Strassen erzeugen. Dadurch wird die umgebungssensitive Überprü- fung problematisch, falls die Werte von Elevation_Threshold_Highway und Elevation_Threshold_Road im Parameterpanel nicht angepasst wurden. Zuerst sollte immer das Verhalten der Highways edit- iert werden. Dies kann effizient durchgeführt werden, indem man den beiden Parametern Road_Branch_Delay_Min und Road_Branch_Delay_Max hohe Wert gibt (diese Parameter kommen in jeder Rule vor), und das L-System nur ca. 300 Ersetzungsschritte generieren lässt. So werden bestimmt alle Highways und keine Streets berechnet. Danach können die Streets editiert werden (diese haben keinen Einfluss auf die Highways). Auch hier gilt: aufgrund des Namens eines Parameters kann auf dessen Bedeutung geschlos- sen werden. Da alle Regeln auf der Western Rule basieren, wurden auch alle Parameterfiles der anderen Regeln aus demjenigen der Western Rule abgeleitet. Der Radial Rule wurden beispiels- weise nur die beiden Parameter, die das Zentrum definieren, hinzugefügt. Das Set der Grid Rule wurde um die Parameter erweitert, die das Grid definieren. Die Topological Rule hat zwei Schwellwerte zusätzlich, welche verantwortlich dafür sind, ab welcher Steigung die Topologi- cal Rule aktiv ist (d.h. auf flachem Gebiet wirkt nur eine Western-Rule). 7.3 Strasseneditor (Streets-Modul) Dieses Modul dient dem nachträglichen Editieren der generierten Strassen. Mit dem ersten Button ( ) kann das Strassennetzwerk aus dem L-System-Modul in das Streets-Modul über- nommen werden. Abbildung 7.5 zeigt einen Screenshot, indem auch die Knoten des Graphen gezeichnet werden (Option Show Crossings im File-Menu eingeschaltet) Mit der linken Maustaste können im Workspace Strassen selektiert werden. Durch nochmaliges Anwählen werden sie wieder aus der Selektionsliste gelöscht. Drückt man die Shift-Taste und die linke Maustaste gleichzeitig, kann der dem Mauscursor nächste Knoten verschoben werden. Im Parameterpanel können Schwellwerte für das Smoothing und Parameter für das Berechnen von TIFF-Bildern des Graphen eingestellt werden. Die Timeline ist eine reduzierte Version der Timeline des L-System-Moduls, da weder Progressbar noch Animationsmodus in diesem Modul benötigt werden.
  • 6. 7.4 PARZELLIERUNG UND GEBÄUDEGENERIERUNG (ALLOTMENTS-MODUL) 57 Abbildung 7.5: Das Strasseneditor-Modul. 7.3.1 Streets-Menu Ist ein Strassennetzwerk geladen ( oder Get Streetnetwork), kann es als Graphfile (Endung: .gra) abgespeichert werden. Ein Graphfile kann jederzeit, unabhängig vom L-System-Modul, wieder geladen wer- den. Die zweite Sektion des Menus dient dem Editieren von Strassen, wobei durch Drücken des Button selektierte Strassen gelöscht werden (Shortcut: Delete). Die dritte Sektion ist verantwortlich für das Smoothing. Der Befehl Smooth selected Streets führt den Smooth- ing-Algorithmus nur auf den selektierten Kanten und derer Endkno- ten aus. Der Button hat die gleiche Funktion wie Smooth all Streets. Will man vom Strassennetzwerk ein berechnetes Bild mit Anti- Aliasing (beispielsweise als Textur) oder eine ganze Sequenz der Entwicklung abspeichern, kann man Render TIFF bzw. Render TIFF Sequence anwählen. Die Bilder werden im Projektverzeich- Abbildung 7.6: nis im Ordner images abgelegt. Die beiden View...-Befehle starten Streets-Menu fcheck (wie im L-System-Modul). 7.4 Parzellierung und Gebäudegenerierung (Allotments-Modul) Das Allotments-Modul ist zuständig für die Extraktion der Häuserblocks aus einem Strassen- netzwerk, die Unterteilung in Gebäudegrundrisse und das Konstruieren von Gebäuden. Der Button extrahiert aus dem im Streets-Modul geladenen Graphen die Häuserblocks (Polygone). Die Suchtiefe kann im Parameterpanel angegeben werden (Max_Cycle_Search_Depth). Mit dem Button können die Strassenkorridore erzeugt werden, indem die Polygone verklein- ert werden. Abbildung 7.7 zeigt einen Screenshot, nachdem die Polygone in Häuserblocks unterteilt wurden (mit Button ). Im Parameterpanel befinden sich Kontrollwerte der oben erwähnten Operationen und Einstel- lungen zur Gebäudegenerierung. Besonders erwähnenswert ist der Parameter Max_House_Ground_Area, welcher das Abbruchkriterium der Subdivision neben der Populations- dichte entscheidend mitbestimmt.
  • 7. 58 7. CITYENGINE USER MANUAL Abbildung 7.7: Das Allotments-Modul. 7.4.1 Allotments-Menu Der Eintrag Get Blocks extrahiert die Häuserblocks (wie Button ). Diese können als Blockfile (Endung: .p) abgespeichert und geladen werden. Mit gedrückter Shift-Taste und der linken Maustaste kann eine Bounding Box im Workspace definiert werden. Ist diese aktiv, werden nur Blocks innerhalb der Bounding Box abgespeichert. Man kann sie wieder deaktivieren, indem man mit gedrückter Shifttaste die linke Maustaste klickt (ohne die Maus dabei zu bewegen). Cut Streets erzeugt die Strassenkorridore. Die dritte Sektion des Menus ist verantwortlich für die Unterteilung der Häuserblocks: Ist der Eintrag Inside Lots eingeschaltet, werden Gebäudegrundrisse, die keine Kante an einer Strasse haben, nicht verworfen. Die Option Convert Rectangle bewirkt, dass viereckige Polygone, die nahezu eine Abbildung 7.8: rechteckige Form haben in Rechtecke verwandelt werden. Dazu wird Allotments-Menu eine In-Box berechnet. Die Unterteilung wird duch Anwählen von Divide into Lots durchgeführt. Die daraus entstanden Gebäudegrund- risse können als Lotfile (Endung: .p+) abgespeichert und geladen werden. 7.4.2 Buildings-Menu Der erste Eintrag ruft für jeden Grundriss eines der Shape Grammar L-Systeme auf und speichert diese als Stringfiles. Die verschiedenen L-Systeme können mit dem Pythonskript LSystemControl.py kontrolliert werden. In dem Skript werden die L-Systeme den Typen (Residential, Commercial oder Industrial) zugeordnet und die Wahr- scheinlichkeit ihres Auftretens innerhalb eines Types kann einge- tragen werden. Mit Attach Shapestrings werden die generierten Stringfiles der Polygondatenstruktur zugewiesen. Der Button ruft Abbildung 7.9: diese beiden Befehle nacheinander auf. Die Strings werden erst inter- Buildings-Menu pretiert, wenn die Gebäude abgespeichert werden. Der Eintrag Generate Shapestrings (one Rule) verwendet nur das im Parameterpanel angegebene Shape Grammar L-System (Parameter Building_Rule_File). Der Befehl Attach Shapestring (File) weist allen Gebäudegrundrissen
  • 8. 7.4 PARZELLIERUNG UND GEBÄUDEGENERIERUNG (ALLOTMENTS-MODUL) 59 denselben Shape String zu. Dieser kann auch im Parameterpanel angegeben werden (Parameter: Shape String File). Die letzten beiden Befehle dienen vor allem Testzwecken, wenn neue Shape Grammar L-Systeme entwickelt werden. Ist die Option Procedural Texturing ausgeschaltet, werden der Geometrie Mapping-Texturkoordinaten zugewiesen (siehe B.9).
  • 9. 60 7. CITYENGINE USER MANUAL
  • 10. 8Resultate In diesem Kapitel werden einige Bilder präsentiert, die mit der CityEngine bzw. Maya erzeugt wurden. Die entsprechenden vollständigen Sequenzen sind im zugehörigen Siggraph-Video zu sehen. Im ersten Beispiel wurde eine der Stadt Zürich ähnliche Topologie benutzt, im zweiten Beispiel wurde versucht, den New Yorker Stadtteil Manhattan genau zu rekonstruieren. 8.1 Zürich Das Gebiet ist 20km lang, 20 km breit und maximal 600m hoch. Abbildung 8.1 illustriert das Strassennetzwerk, dessen Generierung etwa 20 Sekunden dauerte. Die Eingabebilder Wasser- Land und Parks sind entsprechend eingefärbt (weitere Eingabebilder sind in Abbildung 3.2 dargestellt). Der Wachstum beginnt in der Mitte der zyklisch angeordneten Stadt (→ Radial Rule). In den Gebieten mit stark steigender Elevation folgt der Wachstum den Gesetzen der Topographical Rule. In diesem Beispiel ist gut zu erkennen, wie der Wachstum der Strassen durch die nach aussen niedrigere Populationsdichte bedingt, entsprechend abnimmt und so nur noch Agglomerationen erzeugt werden (→ Open L-System). In Abbildung 8.2 und 8.3 sind Renderings einer Szene mit ungefähr 37’000 Gebäuden zu sehen. Die Bilder wurden mit Alias|Wavefronts Maya berechnet. Die Generierung der Gebäu- deformen (d.h. die Erzeugung aller 37’000 Shape Grammar Strings durch die L-Systeme) dauerte ca. 20 Minuten, das Interpretieren und Einlesen der Daten in Maya dauerte nochmals 20 Minuten (Prozessor: Mips R4400, 350MHz). Die Bilder wurden nur mit dem schnellen Ray- casting-Verfahren berechnet. Die Schatten wurden mit einer Shadowmap erzeugt. Die durch- schnittliche Renderzeit lag bei 4 Minuten, wobei die Anti-Ailasing Qualität sehr niedrig eingestellt wurde und zusätzlich Depthmap und 2D-Motionblur (für die Siggraph-Animation) berechnet wurde. Als Renderplattform kam eine Onyx 2 mit 8 Prozessoren und 4 Gigabyte Spe- icher zum Einsatz. Für das Rendern dieser Szene werden etwa 450 Megabyte Speicher benötigt, und da Maya die Szene für jeden Prozessor einzeln in den Speicher lädt, werden beim Render- ing mit 8 Prozessoren 3.4 Gigabyte Speicher benutzt. 61
  • 11. 62 8. RESULTATE Abbildung 8.1: Das generierte Strassennetz von Zürich. Oben: Entwicklung der Highways nach 50 und 100 Ersetzungsschritten. Unten: Das endgültige Strassennetz mit Highways und Streets (551. Schritt).
  • 12. 8.1 ZÜRICH 63 Abbildung 8.2: In Maya gerenderte Bilder einer Stadt, die mit der CityEngine erzeugt wurde.
  • 13. 64 8. RESULTATE Abbildung 8.3: Weitere Renderings derselben Stadt wie in Abbildung 8.2. Der Nebel wurde mit einer Depthmap erzeugt. 8.2 Manhattan Das Gebiet ist 12 km lang und 5 km breit. Abbildung 8.4 illustriert das Strassennetzwerk, dessen Generierung etwa 10 Sekunden dauerte. Das Wachstum beginnt im vorderen Teil der Insel und folgt zuerst den Gesetzen der Western Rule und anschliessend denen der Grid Rule. Die Local Constraints sind für die Highways entlang der Küstenlinie verantwortlich. In Abbildung 8.5 und 8.6 sind Maya-Renderings einer Szene mit ungefähr 10’000 Gebäuden zu sehen. Die Generierung der Gebäudeformen dauerte ca. 15 Minuten, das Interpretieren und Einlesen der Daten in Maya dauerte nochmals 15 Minuten. Die Gebäudeformen sind in diesem Beispiel wesentlich komplexer als bei der Zürich-Szenerie (beispielsweise sind die auf den Dächern Kamine und Geländer zu sehen). Die Bilder wurden mit Raytracing mit Reflektions- tiefe 2 und Schatten berechnet (durchschnittliche Renderzeit: 6 Minuten).
  • 14. 8.2 MANHATTAN 65 Abbildung 8.4: Rekonstruiertes Manhattan. Oben: Entwicklung des Strassen- netzwerkes nach 28 und 142 Ersetzungsschritten. Mitte: Resultier- endes Strassennetzwerk (nach 228 Schritten). Unten: Die echte Strassenkarte zum Vergleich.
  • 15. 66 8. RESULTATE Abbildung 8.5: Renderings vom virtuellen Manhattan. Das oberste Bild zeigt die Spiegelung der Stadt in einem stark reflektierenden Fenster (mit Bumpmap).
  • 16. 8.2 MANHATTAN 67 Abbildung 8.6: Weitere Renderings aus dem virtuellen Manhattan (Fortsetzung von Abbildung 8.5).
  • 17. 68 8. RESULTATE
  • 18. 9Schlussbemerkungen 9.1 Fazit Im momentanen Stand der Entwicklung, indem sich die CityEngine befindet, eignet sie sich gut für Anwendungen in Filmproduktionen. Die CityEngine erfüllt fast alle Anforderungegen die eine Filmproduktion verlangt: Das Modeling ist schnell (d.h. billig), die ganze Pipeline sehr flexibel und mit dem Output können visuell ansprechende Bilder produziert werden. Der benötigte Zeitaufwand für Letzteres (siehe Kap 8, Resultate) ist der Schwachpunkt der City- Engine. Im nächsten Unterkapitel findet man eine kurze Diskussion über Level of Detail, durch dessen Verwendung die Renderzeiten um einiges verkürzt werden könnten. Die CityEngine kann in jeder Phase einer Filmproduktion benutzt werden: Das Design der Stadt kann mit ihrer Hilfe entworfen werden; sie eignet sich geradezu hervorragend für das Erstellen von (Video-) Storyboards, und natürlich kann sie zum Erstellen der endgültigen Aufnahme verwendet wer- den. Im CAAD kann die CityEngine ebenfalls gut verwendet werden: Einerseits als Tool für die Erzeugung von Hintergrundgeometrien und andererseits können mit der CityEngine Shape Grammar auf einfache Weise Gebäude entworfen werden. Um die CityEngine in der Game Industrie zu benutzen, müsste vor allem das Modeling der Strassenzonen verbessert werden. Im Film, wo die Einstellungen bekannt sind, können nötige Details wie beispielsweise Strassenlaternen ohne grossen Aufwand manuell platziert werden. In einem 3D-Game müsste dies im ganzen Stadtmodel gemacht werden (falls der Spieler die Freiheit hat, überall hinzugehen). Ein weiterer Nachteil der CityEngine ist der fehlende Level of Detail, welcher in der Game Industrie ein Muss ist. Dass die Strassennetzwerkerzeugung im Bereich des Urban Streetnetwork Modeling verwendet wird, ist momentan eher unwahrschein- lich, da bautechnische Strassenmodelle, wie beispielsweise das Bauen einer Einfahrt, nicht in der CityEngine implementiert wurden. 9.1.1 Strassennetzwerkerzeugung Der implementationstechnische aufwendigste Teil der CityEngine, die Strassennetzwerkerzeu- gung, liefert zufriedenstellende Ergebnisse. Vor allem die Kontrolle des L-Systems durch den umgebungssensitiven und selbstsensitiven Teil, sowie die Integration neuer Regeln im L-System funktionieren sehr gut. Die Bewertung der Regeln hängt davon ab, wie sie program- miert wurden, und in welchem Anwendungsbereich die CityEngine eingesetzt werden soll. Betrachtet man die Strassennetzwerkerzeugung als Tool, welches Gebäude realistisch in einer 69