18
34 4. ERZEUGUNG DER STRASSENNETZWERKE Simulationsmodel für Transportfluss unterliegt, können mögliche Auswirkungen der Strassen- kapazität auf die Zyklenbildung ignoriert werden. Wie bei der umgebungssensitven Überprüfung wird einem Segment, das in einem Selbst- sensitiven L-System eingefügt werden soll, die Länge und der Winkel justiert, indem folgende Überprüfungen durchgeführt werden (illustriert in Abbildung 4.10): Intersection: Bildet das Segment mit einem anderen Segment des L-Systems eine Intersektion, wird das einzufügende Segment gekürzt. Forward Intersection: Ist das Segment einer Intersektion nahe, wird diese gebildet, indem das Segment verlängert wird. Der Benutzer kann angeben, wie gross der zu über- prüfende Bereich sein soll. Nearest Neighbour: Ist das Segment nahe an einer Kreuzung, wird Länge und Winkel derart verändert, dass das Segment die Kreuzung erreicht. Auch hier kann der Benutzer angeben, wie gross der zu überprüfende Bereich sein soll. Normal: Trat keiner der oben aufgeführten Fälle ein, kann das Segment ohne Ände- rungen von Winkel oder Länge eingefügt werden. Zusätzlich wird überprüft, ob die neuen Parameterwerte immer noch innerhalb der vom Benutzer definierten Gültigkeitsbereiche liegen: Ist eine Strasse zu kurz, oder der Winkel zu gross, wird das Segment verworfen (state=FAILED). Wurden die Parameterwerte eines Seg- mentes verändert, d.h. eine Strasse endet in einer Kreuzung, wird dies für die Rules markiert (in roadAttr). Die Rules stoppen in diesem Fall das weitere Wachstum. 4.4 Smoothing Die mit dem L-System erzeugten Strassennetzwerke bilden einen Graph, welcher aus Kanten (Strassen) und Knoten (Kreuzungen) besteht. Dieser Graph kann nun nach Belieben editiert werden. In diesem Abschnitt wird ein Editiertool vorgestellt, das den Graphen glättet und dadurch realistischere Kurvenläufe der Strassen erzeugt. Ein Subdivisionsalgorithmus unterteilt die Kanten, die mindestens einen Endpunkt mit Valenz (Anzahl Nachbarn) gleich zwei haben und bewegt anschliessend die entsprechenden Punkte. Die folgenden beiden Formeln in der rechten Spalte entsprechen den Regeln von Abbildung 4.10: Selbstsensitives Einfügen von Segmenten. Jede Spalte illustiert eine Einfügeart: Intersection, Forward Intersection, Nearest Neighbour und Normal (v.l.n.r).

Master thesis pascal_mueller03

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Master thesis pascal_mueller03

34 4. ERZEUGUNG DER STRASSENNETZWERKE

Simulationsmodel für Transportfluss unterliegt, können mögliche Auswirkungen der Strassen-kapazität auf die Zyklenbildung ignoriert werden.

Wie bei der umgebungssensitven Überprüfung wird einem Segment, das in einem Selbst-sensitiven L-System eingefügt werden soll, die Länge und der Winkel justiert, indem folgendeÜberprüfungen durchgeführt werden (illustriert in Abbildung 4.10):

• Intersection: Bildet das Segment mit einem anderen Segment des L-Systems eineIntersektion, wird das einzufügende Segment gekürzt.

• Forward Intersection: Ist das Segment einer Intersektion nahe, wird diese gebildet,indem das Segment verlängert wird. Der Benutzer kann angeben, wie gross der zu über-prüfende Bereich sein soll.

• Nearest Neighbour: Ist das Segment nahe an einer Kreuzung, wird Länge und Winkelderart verändert, dass das Segment die Kreuzung erreicht. Auch hier kann der Benutzerangeben, wie gross der zu überprüfende Bereich sein soll.

• Normal: Trat keiner der oben aufgeführten Fälle ein, kann das Segment ohne Ände-rungen von Winkel oder Länge eingefügt werden.

Zusätzlich wird überprüft, ob die neuen Parameterwerte immer noch innerhalb der vomBenutzer definierten Gültigkeitsbereiche liegen: Ist eine Strasse zu kurz, oder der Winkel zugross, wird das Segment verworfen (state=FAILED). Wurden die Parameterwerte eines Seg-mentes verändert, d.h. eine Strasse endet in einer Kreuzung, wird dies für die Rules markiert (inroadAttr). Die Rules stoppen in diesem Fall das weitere Wachstum.

4.4 Smoothing

Die mit dem L-System erzeugten Strassennetzwerke bilden einen Graph, welcher aus Kanten(Strassen) und Knoten (Kreuzungen) besteht. Dieser Graph kann nun nach Belieben editiertwerden. In diesem Abschnitt wird ein Editiertool vorgestellt, das den Graphen glättet unddadurch realistischere Kurvenläufe der Strassen erzeugt.

Ein Subdivisionsalgorithmus unterteilt die Kanten, die mindestens einen Endpunkt mitValenz (Anzahl Nachbarn) gleich zwei haben und bewegt anschliessend die entsprechendenPunkte. Die folgenden beiden Formeln in der rechten Spalte entsprechen den Regeln von

Abbildung 4.10: Selbstsensitives Einfügen von Segmenten. Jede Spalte illustiert eineEinfügeart: Intersection, Forward Intersection, Nearest Neighbourund Normal (v.l.n.r).

Page 2: Master thesis pascal_mueller03

4.4 SMOOTHING 35

Zorin [12], die in Kraft treten, wenn Randkanten von Catmull-Clark Subdivision Surfaces [3]subdividiert werden. Folgende Subdivision wurde verwendet:

Die Kanten werden unterteilt, indem in der Mitte ein Knoten (Edgepoint) eingefügt wird. DieKnoten (Vertexpoints) mit genau zwei Nachbarn ändern ihre Position. Die neue Position wirddurch die beiden Nachbarknoten beeinflusst. Abbildung 4.11 illustriert die Subdivision mit denFormeln der linken Spalte. Abbildung 4.12 zeigt die Subdivision für die Regeln der rechtenSpalte. Diese eignen sich besser für spitze Winkel.

• Edgepoints:

• Vertexpoints:

Abbildung 4.11: Smoothen des Graphen mit Zorins Regeln.

Abbildung 4.12: Smoothing für spitzere Winkel.

ssmoothv e+

2-----------= ssharp

3v e+4---------------=

vsmooth

6v e+ 1 e2+8

-----------------------------= vsharp

14v e+ 1 e2+16--------------------------------=

Page 3: Master thesis pascal_mueller03

36 4. ERZEUGUNG DER STRASSENNETZWERKE

Page 4: Master thesis pascal_mueller03

37

5Parzellierung

Falls eine Region bebaubar ist (d.h. wenn weder Wasser noch Parks vorhanden sind), stehenzwischen den Strassen die Häuserblocks. Diese können durch Polygone beschrieben werden(mit den Strassen als Kanten). Der Algorithmus, der aus dem Graphen die Polygone extrahiert,ist in A.4 beschrieben. Anschliessend wird an allen Kanten mit der Hälfte der jeweiligen Stras-senbreite subtrahiert. Dadurch werden die Strassenkorridore zwischen den Häuserblockserzeugt. Mit einem rekursiven Subdivisionsalgorithmus wird dann jeder Häuserblock in meh-rere Gebäudegrundrisse unterteilt (auch Polygone). Abbildung 5.1 verdeutlicht den gesamtenProzess. Auf jedem der resultierenden Grundrisse kann ein Gebäude gebaut werden. Dazumüssen den Gebäudeparametern (wie Grösse oder Alter) entsprechende Werte zugewiesen wer-den. Diese können aus den Eingabedaten abgeleitet werden.

5.1 Subdivision

Blockpolygone werden in Gebäudepolygone unterteilt, indem ein Polygon solange rekursivsubdividiert wird, d.h durch eine Gerade in zwei kleinere Polygone gesplittet, bis auf dessenFläche ein der Umgebung entsprechendes Gebäude gebaut werden kann. Beispielsweise sind ineiner stark bevölkerten Zone eher Gebäude mit grosser Grundfläche zu finden.

Abbildung 5.1: Der Prozess der Parzellierung: Aus dem Graphen werden Häuser-blocks extrahiert, und diese in Gebäudegrundrisse unterteilt.

Page 5: Master thesis pascal_mueller03

38 5. PARZELLIERUNG

Der Subdivisionsalgorithmus funktioniert folgendermassen: Gestartet wird die Subdivisionauf jedem Blockpolygon. Zuerst wird überprüft, ob die Polygonfläche genügend klein ist umdarauf ein Gebäude zu bauen. Diese Überprüfung hängt von den Eingabebildern (Populations-dichte und Landnutzung) und den entsprechenden CityEngine-Parametern ab, d.h. der Benutzerkann diesen Vorgang steuern. Schlägt die Überprüfung fehl, muss dass Polygon unterteilt wer-den. Um möglichst rechtwinklige Grundrisse zu kreieren, wird aus den beiden längsten Kantendiejenige ausgewählt, welche mehr 90°-Winkel an den Endpunkten hat und länger ist (2.Wahl-kriterium). In derer ungefährer Mitte (gaussverteilt) wird rechtwinklig dazu die Trenngeradegelegt, mit der das Polygon in zwei Teilpolygone gesplittet wird. Nun beginnt die Überprüfungder resultierenden Polygone rekursiv von neuem. Wurde hingegen durch den rekursiven Algo-rithmus ein Polygon gefunden, muss dieses folgende Kriterien erfüllen:

• Das Polygon darf eine vom Benutzer bestimmte Minimalfläche nicht unterschreiten.• Das Polygon sollten keine zu spitzen Winkel enthalten. Den Minimalwert kann der

Benutzer festlegen.• Falls erwünscht, werden nur Polygone akzeptiert, die mindestens eine Kante an einer

Strasse haben. Dies hat zur Folge, dass innerhalb der Häuserblöcke Innenhöfe ent-stehen können.

Erfüllt ein Polygon alle Anforderungen, ist es als Gebäudegrundriss akzeptiert. Abbildung 5.2verdeutlicht den Prozess anhand eines Beispiels.

5.2 Parameterzuweisung

Das Grundstück eines Gebäudes ist nun gegeben, jetzt muss dessen Höhe berechnet werden.Die Höhe eines Gebäudes resultiert aus dessen Grundfläche und dessen Funktion. Die Funktionkann in der CityEngine nicht direkt bestimmt werden, aber sie wird aus dem Eingabebild derPopulationsdichte auf einfache Weise abgeleitet: Je höher die Populationsdichte ist, desto mehrLeute wohnen oder arbeiten in einem Gebäude, was wiederum bedeutet, dass das Gebäude einegrössere Kapazität respektive eine grössere Höhe besitzt. Diese Lösung birgt zwei Probleme insich: Erstens kann der Benützer die Gebäudehöhen nur über die Steuerung der Parameter‘Populationsdichte’ und ‘Gebäudevolumen pro Person’ kontrollieren, d.h. die resultierendenHöhen sind eine skalierte Version der Populationsdichte. Zweitens ist die Gebäudehöhe unab-hängig von der Grundfläche des Gebäudes, welche ebenfalls Einfluss auf die Höhe hat. Bei-spielsweise werden auf einer 100m2 grossen Grundfläche keine Gebäude mit 100 Stockwerkengebaut. Deshalb wurde eine andere Lösung implementiert: Der Benutzer hat drei Gebäudetypenzur Verfügung, bei denen er die Höhe und deren Standardabweichung angeben kann. DasAuftreten der drei Gebäudetypen kann er mit Schwellwerten kontrollieren, indem diese miteinem Wert verglichen werden, der aus Populationsdichte und Grundfläche gebildet wird.Parameter wie das Alter des Gebäudes werden direkt aus den Eingabebildern eingelesen (mitdem Schwerpunkt des Polygons als Abtastpoint).

Abbildung 5.2: Rekursive Subdivision eines Blockpolygons in Gebäudegrundrisse.

Page 6: Master thesis pascal_mueller03

39

6ProzeduraleGebäudegenerierung

Im vorhergehenden Kapitel wurden allen Gebäuden diverse Attribute wie Typ, Ort oder Grössezugewiesen. Der nächste Schritt in der City-Pipeline besteht nun darin, den einzelnen Gebäudenindividuelle Formen zuzuweisen.

Das Ziel ist, die Arbeit eines Architekten zu simulieren. Ein Architekt konstruiert einGebäude unter ähnlichen Umständen: ihm wird ein Grundstück zur Verfügung gestellt und erbaut darauf ein Gebäude, das eine bestimmte Funktion erfüllt. Die Automatisierung dieses Pro-zesses ist sehr umstritten, basiert doch vor allem die Kreativität eines Architekten auf derErfahrung, die er sich im Laufe seiner Karriere aufgebaut hat. Das Gebiet des CAAD (ComputerAided Architectural Design) behandelt dieses Thema. Das Ziel des CAAD ist, den Computerals Medium einzusetzen, das Architekten in der Arbeit unterstützt und ihnen kompetentereBehandlung wichtiger architektonischer Fragen erlaubt.

In diesem Kapitel werden zuerst die Methoden und Instrumente des CAAD kurz vorgestelltund anschliessend wird daraus eine Formengrammatik abgeleitet, mit der Gebäudeformenabstrakt dargestellt werden können. Anhand einiger Beispiele wird aufgezeigt, dass dieseGrammatik in der Lage ist, diverse bestehende Gebäude auf einfache Art zu rekonstruieren. DieGrammatik wurde aber nicht nur durch CAAD inspiriert, sondern sie wurde so entworfen, dassdie Generierung neuer Bauten durch ein L-System erfolgen kann. L-Systeme wurden im CAADnoch nie benutzt, obwohl ähnliche Ansätze schon vorgeschlagen wurden. Abschliessend wirdanhand einiger Beispiele illustriert, wie Regeln für dieses L-System aufgestellt werden können.

6.1 Computer Aided Architectural Design

Als Beginn des rechnergestützen architektonischen Entwerfens oder des Computer AidedArchitectural Design (CAAD) wird allgemein Ivan Sutherlands Sketchpad-Programm aus demJahre 1963 [33] angesehen, das die Grundlage für die Datenstrukturen und Benutzeroberflächenheutiger CAD-Programme legte. Als das Standardwerk des CAAD kann [20] aus dem Jahre1977 bezeichnet werden.

CAAD unterscheidet sich von CAD im Sinne von Computer Aided Design, indem esarchitekturspezifische Operationen und Anwendungen unterstützt, die für andere Disziplinenvon geringem Interesse sind. Es unterscheidet sich von CAD im Sinne von Computer Aided

Page 7: Master thesis pascal_mueller03

40 6. PROZEDURALE GEBÄUDEGENERIERUNG

Drafting, indem es nicht nur die Ausführungsphase, sondern auch die architektonischeEntwurfsphase unterstützt. In [31] bilden Methoden und Instrumente des CAAD einen Kern-bereich. Methoden wurden als allgemeine Problemlösungsstrategien beschrieben, die vonInstrumenten unterstützt werden können. In den folgenden beiden Abschnitten werden die fürdas CityEngine-Projekt relevanten Methoden und Instrumente vorgestellt.

6.1.1 Methoden für den Entwurf

Methoden entwickeln sich aus verallgemeinerten Erkenntnissen und ermöglichen die Umwand-lung komplexer Probleme in einfache Teilproblembeschreibungen und behalten ihre Bedeutungunabhängig vom Verwendungsgebiet. D.h. obwohl sich einzelne Methoden gut für besondereProblemstellungen eigenen, sind sie problemunabhängig. Kombinationen von Methoden inner-halb eines Systems sind ebenfalls möglich und auch üblich. Folgende Methoden sind definiert:

• Abstraktion und Modellbildung: Abstraktion wird verwendet, wenn die Realität zukomplex oder zu umfangreich ist, um sie zu erfassen oder zu manipulieren. DurchModelle können Ausehen, Verhalten und Funktion eines Gebäudes vereinfacht darge-stellt und manipuliert werden. Voraussetzung für das Entstehen eines Modells ist dasVorhandensein einer entsprechenden Abstraktion. Jedes Modell erfordert eine Reihevon Konventionen, um effektiv damit arbeiten zu können.

• Bottom-Up: Zusammensetzung einer Gesamtlösung durch schrittweise erfolgende,iterative oder rekursive Kombination von Einzelelementen. Diese müssen bekanntund kombinierbar sein, um neue zusammengesetzte Objekte erstellen zu können. Diearchitektonische Kombination volumetrischer Grundformen wie Kuben, Sphären,Kegeln oder Keilen ist jedem Architekten bekannt und ist ein beliebtes Thema imWerk berühmter Architekten. Das Instrument der Formengrammatiken ist ein typi-sches Beispiel für die Bottom-Up-Methode.

• Prototypen: Anpassung einer parametrischen Objekbeschreibung an die Zielvorstel-lungen unter der Voraussetzung, dass für das Entwurfsproblem eine prototypischeLösung existiert. In Abbildung 6.1 ist die Verfeinerung eines Prototypen dargestellt:Ohne den Prototypen grundlegend zu verändern, werden Variablen des Prototypenangepasst.

Zwei weitere Methoden, Fallbasiertes Schliessen und Maschinenlernen, treten bei derGebäudegenerierung indirekt in Kraft. Fallbasiertes Schliessen beinhaltet unter anderem dieautomatische Anpassung von Bauteilen, und Maschinenlernen behandelt das automatisierteZiehen von Schlüssen aus einer Reihe von Beobachtungen.

6.1.2 Instrumente für den Entwurf

Instrumente entwickeln sich aus einem konkreten Bedürfnis heraus und sind auf bestimmteAnwendungen zugeschnitten, aber können trotzdem verschiedene Methoden unterstützen. Vonbesonderem Interesse sind folgende Instrumente:

Abbildung 6.1: Verfeinerung eines Prototypen.

Page 8: Master thesis pascal_mueller03

6.2 DIE SYNTAX DER SHAPE GRAMMAR 41

• Formengrammatiken: Darunter versteht man eine Sammlung von Formen unddarauf angewendenden Transformationsregeln (siehe Abbildung 6.2). Die Anwend-ung von Formengrammatiken in der Architektur ist gerechtfertigt, da diese die Merk-male einer Sprache wie Vokabular und Syntax besitzt.

• Typen und Variationen: Dieses Hilfsmittel erlaubt die Definition oft vorkommenderoder charakteristischer Elemente als Typen, die dann in wechselnder Form wieder-wendet werden können (siehe Abbildung 6.3).

• Substitution: Aus verschiedenen Typen entstehen Modelle. In ihnen können Typengegeneinander ausgetauscht werden (siehe Abbildung 6.4).

6.2 Die Syntax der Shape Grammar

Die CityEngine Shape Grammar vereinigt die Funktionalitäten der oben aufgeführten dreiInstrumente des CAAD. Sie ist in der Lage, existierende Gebäude in einem angemessenabstrakten Sinne beschreiben zu können, und eignet sich ideal für die automatische Generierungneuer Gebäude auf Basis einfacher und eleganter Regeln. Für die CityEngine ist nur die äusser-liche Form eines Gebäudes von Interesse, d.h Innenräume können durch die Shape Grammarnicht modelliert werden.

Die Shape Grammar kombiniert zwei verschiedene Repräsentationen, den Grundriss und dieExtrusion, in einem System. Die Grammatik operiert auf diesen beiden Komponenten, indemsie Operationen zur Veränderung des Grundrisses zur Verfügung stellt, und auf den Grundris-sen verschiedene Arten volumetrischer Grundformen bauen kann. Wie in L-Systemen könnenVerzweigungen gebildet werden, wodurch hierarchische Strukturen entstehen. Der String-Interpreter entspricht demnach also einer 3D-Turtle. Bevor ein Shape Grammar String interpre-tiert wird, untersucht der Interpreter das initiale Polygon (Grundriss) samt dessen Daten wie zuerzielende Gebäudehöhe. Mit Hilfe der Polygondaten wird das Turtle-Koordinatensystem auf-

Abbildung 6.2: Formengrammatiken für die Erzeugung einfacher Geometrien.

Abbildung 6.3: Syntaktische Kombination verschiedener Typen.

Abbildung 6.4: Substitution von Formen.

Page 9: Master thesis pascal_mueller03

42 6. PROZEDURALE GEBÄUDEGENERIERUNG

gestellt: Der Schwerpunkt des Polygons ist der Ursprung; nach oben gehts in Richtung Y-Achse; die Strassenfront des Gebäudes, also die längste an einer Strasse liegende Kante desPolygons (auf XZ-Ebene im Weltkoordinatensystem projeziert), gibt die Richtung der X-Achsean und die Z-Achse ist normal zu beiden. Weiter weiss die Turtle um welche Art von Polygones sich handelt (Rechteck vs. beliebiges Vieleck) und kennt die Ausmasse der Bounding-Boxdes Grundrisses (in XZ-Koordinaten des Turtle-Koordinatensystems). Die Grammatik istform-unabhängig, d.h. der Interpreter kann jede Form von Grundrisspolygon behandeln.Rechtecke haben mehr Operationen zur Verfügung, weil deren Formen in einem kartesischenKoordinatensystem bevorzugt behandelt werden können. In den folgenden Abschnitten werdennun jeweils Elemente der Shape Grammar vorgestellt und anhand von Rekonstruktionen, der inAbbildung 6.5 fotographierten Gebäude, wird deren Anwendung illustriert.

Mit den ersten vier Elementen der CityEngine Shape Grammar können vor allem Gebäudeauf rechteckigen Grundrissen modelliert werden. Sie lauten wie folgt:

E(h) Extrusion mit der Höhe von h Stockwerken.

M(dx,dz) Die Turtle (also der Grundriss) wird in der Ebene bewegt, wobei die Ein-heiten Fensterbreiten sind.

S(l,w) Die Bounding Box des Grundrisses wird auf die Länge von l Fensterbre-iten und auf die Breite von w Fensterbreiten skaliert.

I(h,name) Auf der Bounding Box des Grundrisses wird eine Instanz von name mitder Höhe von h Stockwerken erzeugt.

Wird eine Extrusion durchgeführt, wird gleichzeitig die Turtle um die entsprechende Distanznach oben bewegt. Dies bedeutet, dass man die Turtle mit der Shape Grammar nur in der Ebenesteuern kann (mit dem Befehl M). ‘Fensterbreite’ ist die Einheit der Ebene und ‘Stock-werkhöhe’ die Einheit in y-Richtung. Der Nachteil der Verwendung dieser beiden Einheiten ist,

Abbildung 6.5: Berühmte Wolkenkratzer (v.l.n.r.): Empire State Building (NYC),Sears Tower (Chicago), Lipstick Building (NYC) und Messeturm(Frankfurt)

Page 10: Master thesis pascal_mueller03

6.2 DIE SYNTAX DER SHAPE GRAMMAR 43

dass man nicht präzise modellieren kann, da die tatsächlichen Längen in Metern meistens unbe-kannt sind. Der Vorteil ist jedoch, dass Texturen sauber platziert werden können, sofern Wertewie dx oder l ganzzahlig sind. Die Geometrie einer Instanz (Befehl I) wird so skaliert, dass deren3D-Bounding-Box der 3D-Box entspricht, die durch die 2D-Bounding-Box des aktuellenGrundrisses und der Höhe h gebildet wird. Der folgende String beschreibt mit Hilfe dieser Aus-drücke das Empire State Building, welches auf einem rechteckigen Grundstück von 160mLänge und 57m Breite liegt:

1: [ E(5)2: [ S(3,7) M(-6,0) E(15) ]3: [ S(3,9) M(-4,0) E(19) S(3,5) E(5) ]4: [ S(9,7) E(24)5: [ S(3,7) M(-3,0) E(42) S(2,6.5) E(8) ]6: [ S(7,6) E(54) S(6,5) E(2) I(25,empire_top) ]7: [ S(3,7) M(3,0)E(42) S(2,6.5) E(8) ]8: ]9: [ S(3,9) M(4,0) E(19) S(3,5) E(5) ]10: [ S(3,7) M(6,0) E(15) ]11: ]

Wird dieser String interpretiert, resultiert er in der in Abbildung 6.6 illustrierten Geometrie. DieExtrusion in der ersten Zeile baut die 5 Geschoss hohe Basis des Gebäudes. Die 2. Zeile und die10. Zeile sind verantwortlich für die kleinen Extrusionen ganz aussen direkt über der Basis. Dereinzige Unterschied zwischen den beiden Zeilen besteht im Vorzeichen eines Parameters derVerschiebungsbefehle M. Mit den Ausdrücken der 3. Zeile und der 9. Zeile werden auf ähnlicheWeise die beiden nächst inneren Elemente des Gebäudes gebaut. Hier werden aber je zweiExtrusionen und eine Skalierung benutzt, um eine Verjüngung der Geometrie zu modellieren.Die Zeilen 4-8 konstruieren den imposanten Mittelturm des Empire State Buildings. Zeile 6 istverantwortlich für den mittleren Teil und mit Hilfe des Instanzbefehls I wird die 25 Geschosshohe Zeppelinanlegestelle (samt Fernsehantenne) oben draufgesetzt.

Die Nachteile der oben aufgeführten Befehle sind, dass 1. die Werte absolut eingegebenwerden müssen und 2. sich diese Befehle nur für rechteckige Grundrisse wirklich eignen, dadem Turtle ein kartesisches Koordinatensystem unterliegt. Der erste Nachteil verhindert einebenutzterfreundliches Erstellen der Generierungsregeln. Translationen (Befehl M) müssen inden Regeln jedesmal berechnet werden, um über der Strasse schwebende Extrusionen zu ver-meiden. Lautet eine Regel beispielsweise ‘mache den Grundriss halb so gross und bewege ihngegen die Strassenfront bis er mit der unteren Extrusion bündig ist’, muss der verkleinerteGrundriss nur um ein Viertel der Breite verschoben werden. Die daraus resultierenden Formelnhaben lange, unelegante und unübersichtliche Regeln zur Folge. Aus diesen Gründen wurdendie folgenden Elemente der Shape Grammar hinzugefügt:

e(h) Extrusion mit der relativen Höhe h.

m(dir,dist) Der Grundriss wird in Richtung dir bewegt, und der Wert dist gibt an umwieviel. Der Wert dist liegt zwischen 0 und 1.

s(sx,sz) Der Grundriss wird in X-Richtung mit sx und in Z-Richtung um szskaliert. Ist der Grundriss kein Rechteck, wird der Grundriss in X- undZ-Richtung mit (sx+sz)/2 skaliert.

Der Befehl e konstruiert eine Extrusion, deren tatsächliche Höhe von der Turtle berechnet wird.Die totale Gebäudehöhe turtle.buildingHeight ist der Turtle bekannt, wie auch die momentanePosition der Turtle auf der Y-Achse (turtle.y). Mit diesen beiden Werten kann die Höhe der

Page 11: Master thesis pascal_mueller03

44 6. PROZEDURALE GEBÄUDEGENERIERUNG

Extrusion ausgedrückt werden: h·(turtle.buildingHeight-turtle.y). Das Resultat wird anschlies-send auf eine ganzzahlige Anzahl von Stockwerken gerundet. Der Verschiebungsbefehl m istunabhängig von Form und Grösse des Grundrisses, indem eine Art von Polarkoordinatensystemeingeführt wurde. Ist der Wert von dir gleich 0 bedeutet dies, dass die Turtle in Richtung derMitte der ersten Kante (also der Strassenfront) des Grundrisspolygons bewegt wird. Ist der Wert1, in Richtung Mitte der zweiten Kante und so weiter. Es können auch beliebige Floats eingege-ben werden: beispielsweise ein Wert von 0.5 bewegt die Turtle in Richtung des 2. Endpunktesder ersten Kante. Ist der Distanzwert dist gleich 0, wird die Turtle nicht bewegt, und der Befehlhat keine Auswirkungen. Ist der Wert von dist gleich 1, so berechnet die Turtle die Distanz so,dass die Kante des Grundrisses bündig mit der Kante der letzten Extrusion ist. Die Turtle spei-chert also immer zwei Grundrisse. Ein Befehl wie s kann einen neuen aktuellen Grundrisserzeugen und wird eine Extrusion durchgeführt, wird der alte Grundriss mit dem aktuellenGrundriss überschrieben. Der Befehl s behandelt nicht-rechteckige Grundrisse anders, weildadurch garantiert wird, dass nur legale Gebäude entstehen (falls eine Generierungsregel, dieeigentlich für Rechtecke gedacht war, in Kraft tritt). Als illegale Gebäude werden Gebäudebezeichnet, welche über ihren initialen Grundriss hinausragen. Der folgende String rekonstru-iert mit Hilfe obiger Befehle den Sears Tower. Dieses Gebäude hat einen quadratischen Grund-riss mit einer Kantenlänge von 70m und eine Höhe von 443m (ohne Antenne):

1: [ s(0.34,0.34)2: [ e(1) S(2.5,5) E(5) s(0.8,0.4) t(2,1) E(13) ]3: [ m(0,1) e(1) S(3.5,7) E(6) s(0.8,0.4) t(2,1) E(12) ]4: [ m(0.5,1) e(0.61) ]5: [ m(1,1) e(0.83) ]6: [ m(1.5,1) e(0.46) ]7: [ m(2,1) e(0.83) ]8: [ m(2.5,1) e(0.61) ]9: [ m(3,1) e(0.83) ]10: [ m(3.5,1) e(0.46) ]11: ]

Abbildung 6.7 zeigt die resultierende Geometrie. Der Sears Tower besteht aus neun Kubenmit gleicher Grundfläche. In Zeile 1 wird dementsprechend ein neuer aktueller Grundrisskreiert. Die 2. Zeile baut nun den mittleren Kubus, welcher die volle Höhe von 108 Stock-werken erreicht. Anschliessend wird eine Antenne bestehend aus zwei Extrusionen gebaut.Zeile 3 stellt den zweiten Kubus einer Höhe von 443m dar. Dieser steht direkt an der Strassen-front des Gebäudes, bündig mit dem Grundriss. Auch hier wird eine Antenne angesetzt. Die fol-genden 7 Zeilen erzeugen im Gegenuhrzeigersinn nacheinander die anderen Kuben (drei mit 90Stockwerken, zwei mit 66 Stockwerken und nochmal zwei mit 50 Stockwerken).

Page 12: Master thesis pascal_mueller03

6.2 DIE SYNTAX DER SHAPE GRAMMAR 45

Abbildung 6.6: Empire State Building Abbildung 6.7: Sears Tower

Page 13: Master thesis pascal_mueller03

46 6. PROZEDURALE GEBÄUDEGENERIERUNG

Bisher konnten Grundrisse nur durch Skalierung verändert werden. Erwünscht wären aberauch andere Grundriss-Operationen. Deshalb wurde die CityEngine Shape Grammar um fol-genden Befehl erweitert, der regelmässige Polygone beliebiger Valenz (Anzahl Kanten) erzeu-gen kann:

V(val) Ein neuer, kreisförmiger Grundriss mit Valenz val wird erzeugt. Dieserwird zu einem Oval skaliert, das innerhalb der Bounding-Box des altenGrundrisses liegt.

Mit diesem Befehl können sowohl runde Formen (grosser Wert für val), als auch Rechtecke (valgleich 4) erzeugt werden. Das neue Polygon wird so angelegt, dass die 1. Kante parallel zurStrassenfront des Gebäudes ist, und der Mittelpunkt des Ovals befindet sich über dem Schwer-punkt des vorherigen Grundrisses. Dieser Befehl ist mit Vorsicht zu geniessen, wird doch zurSkalierung die Bounding-Box benutzt, d.h.: handelt es sich beim alten Grundriss nicht um einRechteck, sollte der neue Grundriss anschliessend mit s verkleinert werden. Wie beiRechtecken, können mit V erzeugte Grundrisse durch s in X- und Z-Richtung unterschiedlichskaliert werden, da man sich der Form des Grundrisses bewusst ist. Das Lipstick Building,welches 133m hoch ist und auf einem (rechteckigen) Grundstück mit der Länge von 57m undBreite von 21m steht, kann somit wie folgt beschrieben werden:

1: [ V(92) E(18) s(0.87,0.82) m(0,1) E(8) s(0.87,0.82) m(0,1) E(8) s(0.8,0.7) e(1) ]

Nachdem der Grundriss durch den Befehl V geändert worden ist, wird das Gebäude nur nochnach oben verjüngt. Durch die Verschiebungsbefehle sind diese Verjüngungen an der Strassen-front kaum zu erkennen. Abbildung 6.8 illustriert die Sicht von der anderen Seite aus.

Zwei Befehle zur Repräsentation von Dachgeometrien und eine weitere Turtle-Operationsehen folgendermassen aus:

T(type,h) Erzeugt ein Dach des Typs type und mit einer Höhe von h Stockwerken.

t(type,h) Erzeugt ein Dach des Typs type und mit einer relativen Höhe h. Die Höhewird auf gleich Weise wie beim Befehl e berechnet.

R(angle) Rotiert Turtle um angle Grad (im Gegenuhrzeigersinn).

Die Befehle T und t sind verantwortlich für die Generierung von abgeschrägten Dächern. Isttype gleich 1 oder der Grundriss kein Rechteck, wird über dem Grundriss eine Pyramide errich-tet, deren Spitze sich über dem Schwerpunkt des Grundrisses befindet. Ist type gleich 2 und derGrundriss ein Rechteck, wird ein Giebeldach erzeugt, wobei der Giebel parallel zur längerenSeite ist. Anders als bei Extrusionen, wird die Turtle nach ausgeführter Operation nicht nachoben bewegt. Um illegale Gebäudeformen zu verhinden, muss der Befehl R vorsichtig ange-wendet werden. Der folgende String beschreibt den Messeturm Frankfurt (Höhe: 256m, Grund-fläche: 41m×41m):

1: [ E(7)2: [ s(0.7,0.7) R(45) E(45) s(0.9,0.9) E(3) t(1,1) ]3: [ V(56) s(0.99,0.99) E(45) s(0.87,0.87) E(2) ]4: [ S(7,11) E(37) S(5,11) E(2) S(3,11) E(2) ]5: [ S(11,7) E(37) S(11,5) E(2) S(11,3) E(2) ]6: ]

Das resultierende Gebäude ist in Abbildung 6.9 dargestellt. Die 2. Zeile beschreibt das innere,höchste und um 45° gedrehte Element des Gebäudes, auf dessen Spitze sich eine Pyramidebefindet. Zeile 3 konstruiert die runden Elemente. Zeile 4 und 5 stellen die beiden Aussen-elemente dar, wobei man Zeile 5 auch mit Zeile 4 hätte darstellen können, indem man eine Rota-tion von 90° dazugefügt hätte.

Page 14: Master thesis pascal_mueller03

6.2 DIE SYNTAX DER SHAPE GRAMMAR 47

Abbildung 6.8: Lipstick Building Abbildung 6.9: Messeturm Frankfurt

Page 15: Master thesis pascal_mueller03

48 6. PROZEDURALE GEBÄUDEGENERIERUNG

Der oben erwähnte Befehl V ist einer von vielen möglichen Grundriss-Operationen. AndereBeispiele wären Unterteilung (ähnlich der Parzellierung aus 5.1) oder Smoothen eines Grund-risses. Eine ähnliche Vielfalt hat man bei Operationen wie E oder T, welche für die Geome-trieerzeugung zuständig sind. So könnte man den Befehl der Extrusion mit diversen Parameternwie Translation (in X- und Z-Richtung) oder Skalierung des oberen Grundrisses überladen.

6.3 Generierung

Parametrische L-Systeme generieren nun für jeden Grundriss einen Shape Grammar String.Für jeden LandUse-Typ (Residential, Commercial oder Industrial) existiert ein L-System, dasGebäude dieses Typs baut. Durch den stochastischen Teil des L-Systems gesteuert, könnenmehrere Variationen eines Typs vorkommen. Als Axiom erhält ein L-System jeweils die 3D-Bounding-Box, die Valenz und das Alter des entsprechenden Polygons. D.h. ein L-System mussfähig sein, Gebäude jeder Höhe, jeden Alters auf jedem Grundriss zu bauen. Das Axiom A siehtimmer gleich aus:

ω : A(length, height, width, age, valence)

Die Einheiten der Länge und Breite sind Fensterbreiten, die der Höhe Stockwerkhöhen. Einnegativer Valenzwert bedeutet, dass es sich bei dem Polygon um ein Rechteck handelt. Durchdas Turtle-Koordinatensystem sind die Achsen des Gebäudes bekannt. In den Regeln könnennatürlich auch andere Symbole als die der Shape Grammar vorkommen. In den folgendenAbschnitten wird anhand von einigen Beispielen gezeigt, wie solche L-Systeme (Regeln) auf-gebaut werden können.

Die aus der Archtiktur bekannten (siehe Abbildung 6.3) L-, U- oder H-Typen könnenbeispielsweise benutzt werden (die Shape Grammar Befehle sind durch fette Schrift markiert):

p1 : A(l,h,w,a,v) : v < 0 && l·w > 25 → U : 0.2p2 : A(l,h,w,a,v) : v < 0 && l·w > 25 → L : 0.2p3 : A(l,h,w,a,v) : v < 0 && l·w > 25 → H : 0.3p4 : A(l,h,w,a,v) : v < 0 && l·w > 25 → B : 0.3p5 : A(l,h,w,a.v) : v < 0 && l·w < 25 → Cp6 : A(l,h,w,a,v) : v > 0 → Bp7 : U → [ s(0.4, 0.3) m(2,1) B ] [ s(0.3, 1) m(1,1) B ] [ s(0.3, 1) m(3,1) B] p8 : L → [ s(1, 0.4) m(2,1) B ] [ s(0.2, 0.6) m(0.5,1) B ] p9 : H → [ s(0.4, 0.3) B ] [ s(0.3, 1) m(1,1) B ] [ s(0.3, 1) m(3,1) B ] : 0.5p10 : H → [ s(0.7, 0.3) C ] [ s(0.3, 1) m(1,1) C ] [ s(0.3, 1) m(3,1) C ] : 0.5p11 : B → e(1) S(0.2,0.2) E(3) : 0.1p12 : B → e(1) V(4) S(3,1) E(1) : 0.2p13 : B → e(1) : 0.7p14 : C → e(0.8) t(2,1)

Die ersten vier Produktionen behandeln Grundrisse, welche rechteckig sind und eine genügendgrosse Grundfläche besitzen. Stochastisch wird entschieden, welcher Typ verwendet werdensoll. In allen vier Produktionen wird die Grundfläche verkleinert. Das Modul B erzeugt manch-mal einen Block mit einer Antenne (p11), manchmal einen Block mit einem Dachhäuschen (p12)und meistens einen einfachen Block (p13). Produktion p5 behandelt Rechtecke, die flächenmäs-sig kleiner sind, und baut darauf ein Giebeldach (p14). Produktion p6 ist verantwortlich fürPolygone, die nicht rechteckig sind. Der U-Typ wird in Produktion p7 mittels drei Verzweigun-gen von skalierten und verschobenen Blöcken konstruiert. Der L-Typ (p8) benötigt nur zweiVerzweigungen. Der H-Typ (p9 und p10) ist gleich aufgebaut wie der U-Typ (nur ein Verschie-bungsbefehl m weniger), wobei sich die beiden Produktionen dadurch unterscheiden, dass

Page 16: Master thesis pascal_mueller03

6.3 GENERIERUNG 49

durch p9 ein Flachdach und durch p10 ein Giebeldach gebaut wird. Abbildung 6.10 zeigt durchdiese Regel resultierende Gebäude. Die Liste der Produktionen nur mit diesen Modulen liessesich beliebig verlängern, indem weitere (stochastische) Bedingungen und Elemente eingebautwerden könnten.

Das vorhergehende L-System wurde nur dazu benutzt, um Entscheidungen zu treffen,welcher Typ von Gebäude jeweils gebaut werden soll. Die Eigenschaften der L-Systemeerlauben aber auch, Wolkenkratzer kontrolliert wachsen zu lassen. Die Apex-Methode (siehe2.6) eignet sich hervorragend für Wolkenkratzer. Das Modul A kann anstatt als ‘noch zu wach-sender Ast’ als ‘noch zu bauender Abschnitt’ bezeichnet werden. Das Ersetzen von unterenBauelementen mit andersförmigen Elementen, wenn oben auf den Ersteren schon gebautwurde, eignet sich hingegen weniger, da es schwebende Stockwerke zur Folge haben kann. Mitdem folgenden L-System wird die Bauweise der Gebäude des Rockefeller Centers (NYC) sim-uliert:

p1 : A(l,h,w,a,v) : l ≥ w → H(h,0.9,1,1)p2 : A(l,h,w,a,v) : l < w → H(h,1,0.9,2)p3 : H(h,sx,sz,dir) : h ≥ 70

→ [ G(h·0.15,h·0.1,sx^3,sz^3,dir) ] [ s(sz^4,sx^4) G(h·0.9,h·0.1,sx,sz,dir) ] [ s(sz^5,sx^5) G(h,h·0.1,sx,sz,dir) ]

p4 : H(h,sx,sz,dir) : h ≥ 40 && h < 70→ [ G(h·0.15,h·0.1,sx^3,sz^3,dir) ]

[ s(sz^3,sx^3) G(h·0.9,h·0.1,sx,sz,dir) ] [ s(sz^4,sx^4) E(h) ]

p5 : H(h,sx,sz,dir) : h < 40→ [ G(h·0.5,h·0.2,sx^3,sz^3,dir) ]

[ s(sz^2,sx^2) E(h) ] p6 : G(h,e,sx,sz,dir) : h ≥ e → E(h·0.4) s(sx,sz) m(dir,1) G(h·0.6,e,sx,sz,dir)p7 : G(h,e,sx,sz,dir) : h < e → E(h)

Die Gebäude des Rockefeller Centers haben die Charakteristik, dass sich der Grundriss nachoben stets in einer Richtung verjüngt. Die ersten beiden Produktionen überprüfen nun die Formdes Grundrisses und bestimmen für das H-Modul die Art der Verjüngung (in Richtung der län-geren Kante). Das H-Modul (Parameter: h für Höhe, sx für Skalierung in X-Richtung, sz fürSkalierung in Z-Richtung und dir für Bewegungsrichtung) überprüft die Gebäudehöhe und ini-

Abbildung 6.10: L-, U- oder H-Typen

Page 17: Master thesis pascal_mueller03

50 6. PROZEDURALE GEBÄUDEGENERIERUNG

tiert das G-Modul welches für das Wachstum verantwortlich ist. Die höchsten Gebäude werdendurch drei Verzweigungen mit je einem G-Module, welches in die verschiedensten Richtungenskaliert wird, konstruiert (p3). Produktion p4 sieht ähnlich aus, nur wird weniger skaliert (da essich um kleinere Gebäude handelt), und in der dritten Verzweigung findet man nur noch eineExtrusion. Die kleinsten Gebäude besitzen nur noch zwei Verzweigungen (p5). In diesen dreiProduktionen wird auch die Abbruchbedingung für das G-Modul (Parameter e) bestimmt. DasG-Modul ist verantwortlich für die Verjüngung und produziert solange Extrusionen mit einemneuen G-Modul (Produktion p6), bis die noch verbleibende Höhe h kleiner als e ist. Dann wirdnur noch eine letzte Extrusion oben aufgesetzt (Produktion p7). Abbildung 6.11 zeigt links eineFotographie des Rockefeller Centers und rechts die mit diesem L-System generierten Gebäude.

In den obigen Beispielen wurden keine Unterschiede zwischen Gebäuden unterschiedlichenAlters gemacht. Mit folgendem L-System werden Wolkenkratzer mit Erbauungsdatum vor1950 im Art Deco Stil, Wolkenkratzer zwischen 1950 und 1970 im Internationalen Stil und jün-gere Wolkenkratzer im Post Modernen Stil gebaut. Der Art Deco Stil besteht aus regelmässigengeometrischen Formen, spitzen Winkeln und erinnert an den Kubismus. Die berühmtesten Ver-treter dieses Stils sind das Chrysler Building (NYC) und das Empire State Building (NYC). DasZiel des Internationalen Stils war, geometrisch möglichst einfache Gebäude zu konstruieren, dievor allem funktional sind. Als Höhepunkt des Internationalen Stils gilt das Seagram Building(NYC) von Mies van der Roh, dessen Form aus einem 160m hohen Kubus besteht. Das SeagramBuilding ist zweifellos ein grosses Kunstwerk, doch diente es als Vorbild für schlechte Nach-ahmer. Deshalb wurde anfangs 70er wieder vermehrt auf die Philosophie des Art Deco zurück-gegriffen und diese mit den neuen Bautechniken und Formen vereint. Der Post Moderne Stilwar geboren. Berühmteste Vertreter dieses Stils sind das World Trade Center (NYC) oder derSears Tower (Chicago).

Nachfolgende abgedruckt ist das L-System, wobei das Überprüfen der Valenz und der Höhenicht aufgeführt wird, da die Produktionen so übersichtlicher präsentiert werden können unddieses Vorgehen in den obigen L-Systemen schon gezeigt wurde. Die folgenden Produktionenfinden also nur auf Rechtecken mit grosser Höhe statt (95% aller mit der CityEngine erzeugtenGrundrisse sind Rechtecke):

Abbildung 6.11: Die Stadt in der Stadt: das Rockefeller Center.

Page 18: Master thesis pascal_mueller03

6.3 GENERIERUNG 51

p1 : A(l,h,w,a,v) : A < 1950 → D(h)p2 : A(l,h,w,a,v) : A ≥ 1950 && Α < 1970 → Ιp3 : A(l,h,w,a,v) : A ≥ 1970 → P(h)p4 : D(h) → E(5) [ s(0.5,0.5) G(h-5,0.8,0,0) ]

[ s(0.3,0.7) m(1,0.5) e(0.4) ] [ s(0.3,0.7) m(3,0.5) e(0.4) ] : 0.5p5 : D(h) → E(3) [ s(0.7,0.7) m(1.5,1) G(h·0.3,0.5,1.5,1) ]

[ s(0.4,0.4) m(1.5,1) G(h-5,0.9,0,0) ] : 0.5p6 : I → e(1) : 0.3p7 : I → E(2) s(0.6,0.9) e(1) : 0.3p8 : I → E(4) s(0.9,0.4) m(2,0.8) e(1) : 0.4p9 : P(h) → [ V(64) G(h,0.8,1,1) ] [ s(0.5,0.5) m(1,1) e(1) ] : 0.2p10 : P(h) → [ s(0.95,0.95) e(0.9) t(1,1) ]

[ s(0.7,0.7) m(0.5,1) G(h·0.7,0.7,0.5,1) ][ s(0.7,0.7) m(2.5,1) G(h·0.7,0.7,2.5,1) ] : 0.4

p11 : P(h) → s(0.5,0.5) [ m(0.5,1) e(0.4) ] [ m(1.5,1) e(0.9) ][ m(2.5,1) e(1) ] [ m(3.5,1) e(0.7) ] : 0.4

p12 : G(h,sc,dir,dist) : h ≥ 3 → E(h·0.4) s(sc,sc) m(dir,dist) G(h·0.6,dir) : 0.5p13 : G(h,sc,dir,dist) : h ≥ 3 → E(h·0.6) s(sc,sc) m(dir,dist) G(h·0.4,dir) : 0.5p14 : G(h,sc,dir,dist) : h < 3 → E(h)

Die ersten drei Produktionen überprüfen das Alter und initiieren die verschiedenen Stile (D fürArt Deco, I für International und P für Post Modern). Produktionen p4 und p5 benützen die fürArt Deco typischen Verjüngungen (Modul G). Diese werden von Produktionen p12 bis p14 kon-trolliert (ähnlich wie beim Rockefeller-L-System). Der Internationale Stil besteht aus sehr ein-fachen Geometrien, welche mit den, ebenfalls sehr einfachen, Produktionen p6 bis p8 produziertwerden. Der Post Moderne Stil (Produktionen p9 bis p11) ist schliesslich ein Mix der beidenvorhergehenden Stile, d.h. es werden sowohl Verjüngungen als auch Extrusionen benützt.Dazugekommen sind neue Bautechniken mit runden (p9) oder abgeschrägten Geometrien (p10).Abbildung 6.12 zeigt die resultierende Wolkenkratzer.

Obwohl die obigen Beispiele nur zur Illustration der Programmierung von Regeln dienten,ist ersichtlich, dass mit der CityEngine Shape Grammar und entsprechenden L-Systemen einegrosse Vielfalt von Gebäuden generiert werden kann. Wird die CityEngine beispielsweise ineiner Filmproduktion verwendet, kann der Art Director mit ähnlichen (aber wahrscheinlich umeiniges längeren) L-Systemen beliebige Gebäude des gewünschten Stils programmieren.

Abbildung 6.12: Verschiedene Architketurstile: Art Deco, International und PostModern (v.l.n.r.).