Top Banner
18
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Master thesis pascal_mueller01
Page 2: Master thesis pascal_mueller01

Abstract

Modeling a city poses a number of problems to computer graphics. Every urban area has atransportation network that follows population and environmental influences, and often asuperimposed pattern plan. The buildings appearances follow historical, aesthetic and statu-tory rules. To create a virtual city, a roadmap has to be designed and a large number of build-ings need to be generated. We propose a system using a procedural approach based onL-systems to model cities. From various image maps given as input, such as land-waterboundaries and population density, our system generates a system of highways and streets,divides the land into lots, and creates the appropriate geometry for the buildings on the respec-tive allotments. For the creation of a city street map, L-systems have been extended withmethods that allow the consideration of global goals and local constraints and reduce the com-plexity of the production rules. The final buildings are composed by another L-system, thatgenerates strings of a shape grammar which has been introduced to describe the form of abuilding.

Page 3: Master thesis pascal_mueller01

Institut für Wissenschaftliches Rechnen Prof. M. GrossForschungsgruppe Graphische Datenverarbeitung

EidgenössischeTechnische Hochschule

Zürich

Ecole polytechnique fédérale de ZurichPolitecnico federale di Zurigo

Swiss Federal Institute of Technology Zurich

Diplomarbeit von Herrn Pascal Müller

Design und Implementation einer Preprocessing Pipeline zur Visualisierung prozedural erzeugter Stadtmodelle

Einleitung

Das Softwarepaket CityBuilder besteht aus einer Sammlung von Softwaretools, welche die automatische Generierung von virtuellen Städten aus einfachen 2D Eingabedaten ermöglicht. Grundlage der Erzeugung ist die Verwendung von Lindenmayer-Systemen, die aus einfachen Anfangskonfigurationen und einer Anzahl Regeln prozedural eine Instanz des gewünschten Stadtnetzes herstellen können. Aufgrund dieser Daten können Gebäude und weitere Land-schaftsmerkmale erzeugt und platziert werden.

Obwohl für die Generierung des Strassennetzes und eine einfache regelbasierte Geometry-Engine für Gebäude vorhanden sind, fehlen sowohl eine durchgängige Verarbeitung der Daten, sowie die Möglichkeit, die erzeugten virtuellen Städte zu visualisieren.

.

Aufgabenstellung

In dieser Diplomarbeit soll nun eine durchgängige Pipeline implementiert werden, die das bestehende Tool ergänzt und mit deren Hilfe Bilder der so erzeugten Städte einfach generiert werden können.

Die Hauptaufgabe besteht darin, eine Preprocessing Pipeline für das Rendern von prozedural erzeugten Städten zu designen und zu implementieren. Ausgehend von der Datenstruktur der Strassen müssen alle zusätzlichen Elemente wie Geometrie und Texturen korrekt plaziert wer-den. Ausgabe dieser Pipeline ist ein Datenformat, das von den meisten kommerziellen Render-ern gelesen werden kann (zB RIB). Die Gesamtarbeit setzt sich aus folgenden Teilaufgaben zusammen:

• User Interface für bestehende Software Tools (L-System) - Erweiterung bestehender Soft-ware Tools durch Einführung einfach verständlicher Parameter in das Generierungsmodell

• Implementierung einer kompletten Processing Pipeline mit der entspre-chenden Datenkonversion

• Geometriezeugung für Gebäude• Integration eines prozeduralen Shaders• Generieren von Beispielen und Anwendungen

Diese Arbeit steht unter der Obhut von Prof. Markus Gross und wird von Yoav Parish betreut.

Ausgabe: 16. November 1999 Abgabe: 15. März 2000 Prof. M. Gross

Page 4: Master thesis pascal_mueller01

1

Inhaltsverzeichnis

1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1 Verwandte Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Lösungsansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Lindenmayer-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1 Deterministische L-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Verzweigende L-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.3 Stochastische L-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Kontextsensitive L-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.5 Parametrische L-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.6 Umgebungssensitive L-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.7 Open L-Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 System Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Erzeugung der Strassennetzwerke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.1 Das erweiterte L-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.2 Global Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.2.1 Western Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2.2 Grid Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2.3 Radial Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2.4 Topographical Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2.5 Blending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.3 Local Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.3.1 Umgebungssensitivität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.3.2 Selbstsensitive L-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4.4 Smoothing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

5 Parzellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.1 Subdivision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2 Parameterzuweisung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6 Prozedurale Gebäudegenerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.1 Computer Aided Architectural Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.1.1 Methoden für den Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.1.2 Instrumente für den Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.2 Die Syntax der Shape Grammar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.3 Generierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7 CityEngine User Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.1 Die Oberfäche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.1.1 Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.1.2 File-Menu und Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.2 Strassennetzwerkerzeugung (LSystem-Modul) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.2.1 LSystem-Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2.2 Timeline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2.3 Parameterpanel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557.2.4 Rule Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

7.3 Strasseneditor (Streets-Modul) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567.3.1 Streets-Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Page 5: Master thesis pascal_mueller01

2 .

7.4 Parzellierung und Gebäudegenerierung (Allotments-Modul) . . . . . . . . . . . . . . . . . 577.4.1 Allotments-Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.4.2 Buildings-Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

8 Resultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.1 Zürich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.2 Manhattan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

9 Schlussbemerkungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699.1 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

9.1.1 Strassennetzwerkerzeugung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699.1.2 Gebäudegenerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709.1.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

9.2 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709.2.1 Strassenetzwerkerzeugung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709.2.2 Gebäudegenerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.3 Danksagungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

A Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73A.1 Programm-Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73A.2 Das Modul Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74A.3 Das Modul LSystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75A.4 Das Modul Streets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76A.5 Das Modul Allotments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76A.6 Das Modul UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

B Dateitypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79B.1 Parameterfile (.par) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79B.2 Ruleparameterfile (.rp) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79B.3 Graphfile (.gra) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79B.4 Blockfile (.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80B.5 Lotfile (.p+) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80B.6 Buildingrulefile (.lsys) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81B.7 Shapestringfile (.str) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81B.8 MEL Code (.mel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81B.9 Maya Ascii (.ma) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

C Referenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

D Siggraph 2001 Paper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Page 6: Master thesis pascal_mueller01

3

1Einleitung

Das Modellieren und Visualisieren einer Stadt mit all ihren geschichtlichen, kulturellen undökonomischen Eigenheiten ist eine grosse Herausforderung in der Computergraphik. Unter-sucht man Bilder einer Grossstadt wie New York City, entdeckt man eine fantastische Vielfaltvon Strassenmustern, Gebäuden, Formen und Texturen. Die kontrollierte und schnelle Erzeu-gung solcher virtuellen Umgebungen kann im Entertainment (siehe Abbildung 1.1), in derArchitektur oder der Stadtplanung Anwendung finden.

Das prozedurale Modellieren grosser und komplexer Systeme hat eine lange Tradition in derComputergraphik. Bisher wurden jedoch nur natürliche Phänomene und Landschaften in proze-duralen Systemen simuliert. Vielen dieser Systeme ist gemeinsam, dass die Gesamtkomplexitätin kleinere Elemente zerlegt werden kann, welche wiederum durch einfache Modelle beschrie-ben werden können. Einige dieser Systeme sind: Die Simulation von Erosion [21], mit Partikel-Systemen generierte Wälder [26] und die Modellierung von Wolken [23]. Um Pflanzen-geometrien zu erzeugen, werden in der Computergraphik hauptsächlich Systeme benutzt, dieauf Grammatiken basieren, allen voran die L-Systeme. L-Systeme entwickelten sich über dieJahre zu einem sehr mächtigen und raffinierten Werkzeug [18,25] und wurden auch zurModellierung ganzer Ökosysteme verwendet [6].

Abbildung 1.1: Die Stadt als Filmkulisse. Links: Metropolis (Fritz Lang; Deutsch-land, 1927). Rechts: Final Fantasy (Square Pictures; USA, 2001).

Page 7: Master thesis pascal_mueller01

4 1. EINLEITUNG

1.1 Verwandte Arbeiten

Aus kalibrierten Luftaufnahmen von Städten werden mit Methoden der Computer Vision Stras-sen und Gebäude extrahiert. Verschiedene Forschungsteams befassen sich mit diesem Ver-fahren (beispielsweise [13]). Diese Computer Vision Systeme rekonstruieren existierendeStädte, jedoch können ohne photographische Eingabedaten keine neuen Modelle generiert wer-den.

Die Forschungsarbeiten auf dem Gebiet der Visualisierung [4,5,11,27] von Städten befassensich mit Data Management, Real-Time Visualisierung und Optimierung der Speicher-ausnutzung. Hier ist der Ausgangspunkt zumindest eine vorhandene Stadtgeometrie.

Alexander et al. beschreibt in [1] eine Muster-Sprache (Pattern Language) für die Analyseund Planung von Städten, Nachbarschaften, Gebäuden und Räumen. Diese Sprache besteht ausüber 250 verschiedenen Patterns, die vor allem semantische Interpretationen von häufig in Bal-lungsgebieten anzutreffenden Phänomenen sind. Sowohl makroskopische wie “Ringstrassen”,als auch mikroskopische Erscheinungen wie “Fugen im Pflaster” werden in verschiedene Pat-terns klassifiziert. Da diese Muster nicht in quantifizierbaren Massen formalisiert sind, könnensie nicht in einen automatischen Generierungsprozess integriert werden.

Die Space Syntax, entwickelt von Hillier [14], stellt Theorien zur Analyse der Komplexitätvon sehr grossen Systemen, wie Städten, zur Verfügung. Es wird versucht, menschliche Ver-haltensmodelle im Raum (beispielsweise die Wahl der Route [15,22]) zu erklären. Aber auchdiese Methode ist analytisch und benötigt einen bereits existierenden Stadtplan.

Aus dem Bereich des Computer Aided Architectural Design ist die Shape Grammar vonStiny erwähnenswert [29]. Diese verwendet Produktionsregeln, die, anstatt auf den zumBeispiel von L-Systemen bekannten Strings, direkt auf der Form operieren. Diese Shape Gram-mar wird zur Generierung von zweidimensionalen, repetitiven Mustern und in interaktivenDesign Applikationen verwendet.

1.2 Lösungsansatz

In dieser Arbeit wird ein System namens CityEngine vorgestellt, das mit einer vergleichbarkleinen Menge von geographischen und statistischen Eingabedaten eine komplette Stadtmodelliert.

Wegener unterteilt das Model einer Stadt in verschiedene Subsysteme [30]. Einige dieserSubsysteme sind: Topographie, Transportmedien, Gebäude, Zonenplanung, etc. Diese lassensich nach verschiedenen Kriterien sortieren, zum Beispiel nach der Geschwindigkeit derVeränderung eines bereits bestehenden Systems. Da sich die Subsysteme Transportnetzwerk,Landnutzung und Unterbringung in einer urbanen Umgebung sehr langsam ändern (d.h. nurüber Jahrhunderte), wird die Generierung einer Stadt im CityEngine System auf die Erzeugungvon Strassennetzwerken und Gebäuden reduziert. Die Daten zur Landnutzung liefert derBenutzer in Form von Eingabebildern.

Die Strassen dienen der urbanen Bevölkerung als ein Transportmedium, das über die ganzeFläche verteilt ist. Weil mit L-Systemen schon erfolgreich ähnliche Transportsystememodelliert wurden [18], wird in der CityEngine ein L-System zur Erzeugung der Strassen-netzwerke verwendet. Um eine kontrollierte Generierung von Strassennetzwerken mitL-Systemen zu ermöglichen, wird das L-System Modell um hierarchische Mechanismen erwei-tert.

Page 8: Master thesis pascal_mueller01

1.3 ÜBERSICHT 5

Mit verschiedenen Methoden der CAAD können Gebäude beschrieben und erzeugt werden[31,32]. Da diese Methoden oft auf Formengrammatiken und Ersetzungsregeln basieren, wirdin der CityEngine ein parametrisches L-System zur Generierung der Gebäude verwendet.

1.3 Übersicht

Das Kapitel 2 ist eine Zusammenfassung der wichtigsten Arbeiten über Lindenmayer-Systeme(L-Systeme). Dieses Kapitels soll die Grundlagen der L-Systeme erläutern, wie diese aufgebautsind und welche Anwendungen sich daraus ergeben. Kapitel 3 beschreibt das Framework derCityEngine Software, deren Pipeline und die verwendeten Datenstrukturen. Im Kapitel 4 wirddie Idee der erweiterten L-Systeme vorgestellt. Erweiterte L-Systeme ermöglichen, die Kon-trolle des Wachstums externen, hierarchisch organisierten Funktionen zu überlassen. Anhandder Strassennetzwerkerzeugung wird die Verwendung dieser erweiterten L-Systemedemonstriert. Kapitel 5 beschreibt die Parzellierung der entstandenen Grundstücke. Anschlies-send wird in Kapitel 6 die Shape Grammar präsentiert, mit der Gebäude rekonstruiert und gen-eriert werden können. Das Kapitel 7 enthält die Anleitung zur Benutzung der CityEngineSoftware und Kapitel 8 zeigt die so erzielten Resultate. Im letzten Kapitel wird das CityEngineSystem beurteilt und mögliche Erweiterungen werden vorgeschlagen.

Page 9: Master thesis pascal_mueller01

6 1. EINLEITUNG

Page 10: Master thesis pascal_mueller01

7

2Lindenmayer-Systeme

Ein Lindenmayer-System (L-System) ist ein regelbasiertes, paralleles Ersetzungssystem, daskomplexe Endprodukte prozedural generieren kann. Mit Hilfe einer Menge von Ersetzungs-regeln (auch Produktionen genannt) ersetzt man sukzessive Teile eines einfachen Initial-objektes und definiert auf diese Weise komplexe Objekte. Als klassisches Beispiel einesgraphischen Objektes, das durch Ersetzungsregeln definiert wurde, gilt die Koch-Kurve.

Die am meisten erforschten Ersetzungssysteme basieren auf Charakter-Strings. Als Ersteerregte in den späten Fünfzigern die Arbeit von Chomsky über formale Grammatiken dieAufmerksamkeit der Forscher. Chomsky wendete das Ersetzungskonzept an, um syntaktischeMerkmale natürlicher Sprachen zu beschreiben. Ein paar Jahre später entstand die zu derkontextfreien Klasse der Chomsky-Grammatiken ähnliche Backus-Naur-Form. Ihr Zweck war,die Programmiersprache ALGOL-60 zu veranschaulichen und sie formal definieren zu können.1968 entwickelte der Biologe Aristid Lindenmayer ein System um Pflanzen und deren Wachs-tum mathematisch zu beschreiben, das ebenfalls auf Ersetzungsstrategien basierte - dieL-Systeme waren geboren. Der essentielle Unterschied zwischen Chomsky-Grammatiken undL-Systemen besteht in der Anwendung der Produktionen: In Chomsky-Grammatiken werdendie Produktionen sequentiell abgearbeitet, während in L-Systemen - biologisch motiviert - alleBuchstaben eines Wortes parallel und simultan ersetzt werden.

In diesem Kapitel werden zuerst die klassischen L-Systeme aus [24] erklärt. Anschliessendwerden die beiden Erweiterungen von Prusinkiewicz und Mech namens umgebungssensitveL-Systeme [25] und Open L-Systems [18] beschrieben. Die in dieser Ausarbeitung verwendeteL-System-Syntax entspricht derjenigen aus Prusinkiewicz jüngster Arbeit [18].

2.1 Deterministische L-Systeme

In diesem Unterkapitel wird die einfachste Klasse von L-Systemen präsentiert: die Klasse derdeterministischen und kontextfreien L-Systeme (D0L-Systeme).

Als Einführung ein intuitives Beispiel: Gegeben sind die 2 Buchstaben a und b. Diesekönnen Wörter bzw. Strings bilden, in denen die beiden Buchstaben beliebig oft vorkommendürfen. Jeder Buchstabe ist mit einer Ersetzungsregel assoziiert: Die Regel a → ab bedeutet,dass der Buchstabe a im nächsten Schritt durch den String ab ersetzt wird. Für den Buchstabenb gilt die Regel b → a, d.h. b wird durch a ersetzt. Um dieses Ersetzungs-Szenario zu startenbenötigt man ein Initialwort: das Axiom. Für dieses Beispiel besteht das Axiom nur aus dem

Page 11: Master thesis pascal_mueller01

8 2. LINDENMAYER-SYSTEME

Buchstaben b. Im ersten Schritt wird das Axiom b durch a ersetzt mittels der Produktion b → a.Im zweiten Schritt tritt die Produktion a → ab in Kraft, d.h. a wird ersetzt durch ab. Im darauf-folgenden Schritt werden nun a und b simultan ersetzt, was im String aba resultiert. DieserProzess wird nun beliebig oft fortgesetzt: Der vierte Schritt produziert abaab, der Nächste abaa-baba, daraus folgt abaababaabaab und so weiter. Im folgenden Abschnitt wird nun die formaleDefinition von D0L-Systemen angegeben.

V bezeichnet ein Alphabet, V* ist die Menge aller Wörter über V, und V+ ist die Menge allernichtleeren Wörter über V. Das leere Wort wird mit ε bezeichnet. Ein String-L-System ist eingeordnetes Tripel G = ⟨V, ω, P⟩ mit ω als Axiom für das ω ∈ V+ gilt und P bezeichnet die Mengeder Produktionen: P ⊂ V × V*. Eine Produktion (a, χ) ∈ P wird geschrieben als id: a → χ. Dabeinennt man den Buchstaben a den Predecessor, das Wort χ Successor und id ist das Label derProduktion. Es wird vorausgesetzt, dass es für jeden Buchstaben a ∈ V mindestens ein Wort χ∈ V* mit a → χ gibt. Sogenannte Identitätsproduktionen a → a müssen nicht explizit angegebenwerden. Ein L-System ist nur dann deterministisch, wenn für jedes a ∈ V genau ein χ ∈ V* mita → χ existiert. Bezeichnet µ = a1 a2 ... am ein Wort über V, ν = χ1 χ2 ... χm ein Wort über V*,und gilt ai → χi für alle i = 1..m, dann wurde ν aus µ generiert (µ ⇒ ν). Eine Entwicklungs-S�equenz der Länge n eines L-Systems sieht demnach folgendermassen aus:µ0 ⇒ µ1 ⇒ .. ⇒ µn mit µ0 = ω und ν = µn.

Um mittels L-Systemen graphische Modelle zu generieren, benötigt man eine graphischeInterpretation der L-Systeme. Die einfache, intuitive und am meisten verwendete Methodebasiert auf der Verwendung der aus LOGO-Programmen bekannten Turtlegeometrie: Ein Tripel(x, y, α) beschreibt die Position (mit kartesischen Koordinaten x und y) und die Richtung(Winkel α) der Turtle. Die folgenden Symbole steuern die Turtle:

F Bewege Turtle d Einheiten vorwärts, was in einer Linie der Länge d resultiert (dist eine globale Variable). Der neue Status (x’, y’, α) der Turtle berechnet sichaus x’ = x + d · cosα und y’ = y + d · sinα.

+ Drehe Turtle im Gegen-Uhrzeigersinn um den Winkel δ (globale Variable). Derdaraus resultierende Status der Turtle ist (x, y, α + δ).

- Drehe Turtle im Uhrzeigersinn um den Winkel δ. Der daraus resultierendeZustand der Turtle ist (x, y, α - δ).

Zum Zeichnen eines Strings ist der Initialstatus (x0, y0, α0) nötig, und natürlich feste Werte fürd und δ. Abbildung 2.1 zeigt ein Beispiel mit folgendem L-System:

ω : F - F - F - Fp : F → F - F + F + F F - F - F + F

Die 4 Bilder entsprechen der graphischen Interpretation von µ0 bis µ3. Der Winkel δ ist immer90°. Die Länge d wurde jeweils so gewählt, dass die Bilder gleich gross erscheinen, wozu mand jeweils 4 mal kleiner als im vorhergehenden Schritt gewählt hat.

Page 12: Master thesis pascal_mueller01

2.2 VERZWEIGENDE L-SYSTEME 9

Abbildung 2.1: 4 Entwicklungen der quadratischen Koch-Inseln

2.2 Verzweigende L-Systeme

Ein Nachteil der L-Systeme ist, dass das Resultat immer eine einzige zusammenhängende Linieist. Die L-Systeme wurden aber ursprünglich zum Modellieren von Pflanzen entwickelt unddiese haben bekanntlich verzweigende Strukturen. Deshalb wurden die L-Systeme um zweigrundlegende Symbole erweitert:

[ Der momentane Status der Turtle wird in einem Stack abgespeichert (“push”).] Der neue Turtle-Status wird vom Stack gelesen (“pop”). Obwohl sich die Posi-

tion (und Winkel) verändern, wird keine Linie gezeichnet.Jetzt können die L-Systeme pflanzenähnliche Strukturen erzeugen. Im folgenden Beispiel wirdder Buchstabe A (für “Apex”) eingeführt. Er bezeichnet einen neuen Ast, der noch nichtgewachsen ist und folglich von der Turtle beim Zeichnen ignoriert wird (“Node-RewrittingL-System”).

ω : Ap1: A → F [ + A ] [ - A ] F Ap2: F → F F

Page 13: Master thesis pascal_mueller01

10 2. LINDENMAYER-SYSTEME

In Abbildung 2.2 ist der 7. Generations-Schritt dargestellt. Der Winkel δ ist 25.7°. Die ersteProduktion p1 bewirkt die 3 Verzweigungen und p2 verdoppelt die Länge der schon bestehendenForward-Linien.

2.3 Stochastische L-Systeme

Jegliche Pflanzen, die durch dasselbe deterministische L-System generiert wurden, sehen gleichaus. Um dies zu verhindern, wird der Zufall miteingebaut, was individuell verschiedene Resul-tate ermöglicht. Eine Produktion eines stochastischen L-Systems hat nun folgendes Format:

id : pred → succ : prob

Das Tripel G der Definition eines D0L-Systems wird zu einem Quadrupel Gp = ⟨V, ω, π, P⟩für stochastische L-Systeme erweitert. Die Wahrscheinlichkeitsverteilung π: P -> ]0, 1] bildetdie Menge der Produktionen auf die Menge der Produktionswahrscheinlichkeiten ab. Für jedenBuchstaben a ∈ V ist die Summe aller Wahrscheinlichkeiten der Produktionen mit Predecessora gleich eins. Das heisst verschiedene Produktionen mit demselben Predecessor sind möglich.Abbildung 2.3 zeigt mögliche Resultate (5. Schritt) des folgenden stochastischen L-Systems:

ω : Fp1 : F → F [ + F ] F [ - F] F : 0.33p2 : F → F [ + F ] F : 0.33p3 : F → F [ - F] F : 0.34

Abbildung 2.2: Beispiel einer Pflanzen-ähnlichen Struktur, die mit einem verz-weigten L-System generiert wurde.

Abbildung 2.3: Stochastische, verzweigte Strukturen

Page 14: Master thesis pascal_mueller01

2.4 KONTEXTSENSITIVE L-SYSTEME 11

2.4 Kontextsensitive L-Systeme

Produktionen in 0L-Systemen sind kontextfrei, d.h. sie werden unabhängig vom Kontext, indem der Predecessor steht, ausgeführt. Für Pflanzen kann es aber wichtig sein, Interaktionenzwischen einzelnen Pflanzenteilen zu modellieren. Dies war der Grund für die Entstehung derKlasse der kontextsensitiven L-Systeme. Produktionen dieser Klasse von L-Systemen habenfolgendes Format:

id : lc < pred > rc → succ

lc und rc bezeichnen den linken und den rechten Kontext. Die Produktion wird nur dann aus-geführt, wenn der Predecessor in entsprechendem Kontext steht. Obiges Produktionsformatentspricht der Kontext-sensitiven Klasse der 2L-Systeme. Produktionen in 1L-Systemen habendas Format id: lc < pred → succ oder id: pred > rc → succ. 0L-Systeme, 1L-Systeme und2L-Systeme sind Teile der Oberklasse der IL-Systeme oder (k,l)-Systeme, bei welchen der linkeKontext ein Wort der Länge k und der rechte Kontext ein Wort der Länge l ist.

Das folgende Beispiel, ein 1L-System, propagiert mit Hilfe des Kontextes ein Signal durcheinen String:

ω : baaaaaaap1 : b < a → bp2 : b → a

Dieses L-System erzeugt folgende Strings:

µ0 : baaaaaaaµ1 : abaaaaaaµ2 : aabaaaaaµ3 : aaabaaaa...

2.5 Parametrische L-Systeme

Obwohl mit den obigen L-Systemen interessante Objekte wie Fraktale und pflanzenähnlicheStrukturen erzeugt wurden, besitzen sie noch Nachteile. Einer davon ist die Tatsache, dass nurLinien möglich sind, deren Länge ganzzahliges Vielfaches der Einheitslänge ist. Deshalb hatLindenmayer die Erweiterung zu parametrischen L-Systemen vorgeschlagen: Anstelle derBuchstaben werden Module benützt. Ein Modul A(a1, a2, ... , an) besteht aus einem BuchstabenA ∈ V und ist mit den Parametern a1, a2, ... , an assoziert. Zusätzlich wird die Produktion umBedingungen und arithmetische Operationen erweitert:

id : pred : cond → succ

Folgendes Beispiel verdeutlicht die Anwendung:

ω : B(2) A(4,4)p1 : B(x) : x > 0 → B(x-1)p2 : B(x) : x ≤ 0 → Cp3 : A(x, y) : y > 3 → B(x) A(x/y, 0)p4 : A(x, y) : y ≤ 3 → A(2·x, x+y)

Mit den Parametern kann man nun Veränderungen während dem Wachstum des Objektes simu-lieren. Einfaches Beispiel im vorhergehenden L-System ist das Modul B(x): Solange x grösserals Null ist, macht es nichts anderes als seinen Parameter zu dekrementieren oder anders aus-

Page 15: Master thesis pascal_mueller01

12 2. LINDENMAYER-SYSTEME

gedrückt, auf seinen Einsatz (p2) zu warten. Abbildung 2.4 stellt die Entwicklung des L-Systemsdar.

Zusätzlich sind die Steuerbefehle der Turtle zur graphischen Interpretation eines Modul-Strings ausgereifter geworden:

F(a) Bewege Turtle einen Schritt der Länge a vorwärts. Der neue Status (x’, y’, α)berechnet sich aus x’ = x + a · cosα und y’ = y + a · sinα.

+(a) Drehe Turtle im Gegen-Uhrzeigersinn um Winkel a. Der daraus resultierendeZustand der Turtle: (x, y, α+a).

Abbildung 2.5 zeigt ein L-System, indem die Parameter dazu benützt wurden, um die Länge derÄste zu verkürzen. Das L-System mit Winkelinkrement δ = 85° ist durch folgende Gleichungendefiniert:

#define ratio 1.456ω : A(1)p1 : A(s) → F(s) [ +A(s/ratio)] [ -A(s/ratio) ]

Abbildung 2.4: Die ersten 5 Schritte des obigen parametrischen L-Systems.

Abbildung 2.5: Verzweigtes, parametrisches L-System

Page 16: Master thesis pascal_mueller01

2.6 UMGEBUNGSSENSITIVE L-SYSTEME 13

Natürlich können parametrische L-Systeme auch kontextsensitiv oder stochastisch sein. Einemögliche Produktion eines parametrischen 2L-Systems wäre:

p : A(x) < B(y) > C(z) : x+y+z > 10 → E(x+y) F(y+z)

Auf dem folgenden, allgemeinen Format einer Produktion eines L-Systems mit allenErweiterungen basieren die meisten neueren L-System Forschungsarbeiten und auch dieseAusarbeitung:

Mit diesen L-Systemen hat Aristid Lindenmayer (1925-1989) wunderbare Modelle von Pflan-zen generiert. Abbildung 2.6 ist ein Beispiel seiner Arbeiten.

2.6 Umgebungssensitive L-Systeme

Umgebungssensitive L-Systeme wurden entwickelt, um die Reaktion einer wachsenden Pflanzeauf ihre Umgebung simulieren zu können. Zum Beispiel wächst eine Pflanze Licht entgegen,oder sie stösst während dem Wachstum auf Hindernisse. Um solche Ereignisse zu simulieren,ist vor allem die (absolute) Position der Turtle wichtig. Deshalb wurden Query-Moduleeingeführt. Jeder Ersetzungsschritt wird genauso wie in den parametrischen L-Systemen aus-geführt, mit der Ausnahme der Query-Module: deren Parameter bleiben undefiniert. Erst nachBeendigung des Ersetzens werden den Query-Modulen Werte zugewiesen, die von der Position

id : lc < pred > rc : cond → succ : prob

Abbildung 2.6: Die Blüten eines Flieders - mit einem L-System generiert.

Page 17: Master thesis pascal_mueller01

14 2. LINDENMAYER-SYSTEME

und Orientierung der Turtle abhängen. Syntaktisch haben die Query-Module das Format?A(a1, a2, ... , an). Im folgenden L-System wird das Query-Modul ?P(x, y) dazu benützt, diePosition x, y der Turtle abzufragen:

ω : Ap1 : A → F(1) ?P(x, y) - Ap2 : F(k) → F(k+1)

Unten sind die resultierenden Strings aufgelistet. Die Strings µ0’, µ1’, µ2’ und µ3’ sind dasAxiom und die Resultate der Ersetzung, bevor die Query-Module interpretiert wurden. DasSymbol * entspricht einem undefinierten Parameter und das Symbol - ist eine Drehung um 90°im Uhrzeigersinn (siehe Abbildung 2.7).

µ0’: Aµ0 : Aµ1’: F(1) ?P(*, *) - Aµ1 : F(1) ?P(0, 1) - Aµ2’: F(2) ?P(*, *) - F(1) ?P(*, *) - Aµ2 : F(2) ?P(0, 2) - F(1) ?P(1, 2) - Aµ3’: F(3) ?P(*, *) - F(2) ?P(*, *) - F(1) ?P(*, *) - Aµ3 : F(3) ?P(0, 3) - F(2) ?P(2, 3) - F(1) ?P(2, 2) - A

Das nächste Beispiel beschreibt ein 2D-Modell eines Baumes, dessen Äste gestutzt werden,sobald sie über eine gegebene Form hinauswachsen. Biologische Studien zeigen, dass sichwährend dem normalen Wachstum eines Baumes Knospen bilden, die keine neuen Äste erzeu-gen und unbenutzt bleiben. Diese Knospen können aber zu einem späteren Zeitpunkt wiederaktiviert werden, wenn man die vorderen, erfolgreicheren Knospen und deren produzierte Ästeaus dem System entfernt. Im folgenden Modell wird der Extremfall dieser Theorie simuliert:Knospen werden nur dann aktiviert, wenn Äste abgeschnitten werden.

ω : F A ?P(x, y)p1 : A > ?P(x, y) : !prune(x, y) → @o /(180) F Ap2 : A > ?P(x, y) : prune(x, y) → T %p3 : F > T → Sp4 : F > S → S Fp5 : S → εp6 : @o > S → [ + F A ?P(x, y) ]

Abbildung 2.7: Den Query-Modulen zugewiesene Werte.

Page 18: Master thesis pascal_mueller01

2.6 UMGEBUNGSSENSITIVE L-SYSTEME 15

Die vom Benützer definierte Funktion

prune(x, y) = (x < -L/2) || (x > L/2) || (y < 0) || (y > L)

erzeugt eine quadratische Clipping-Box mit Kantenlänge L - modelliert also die Schnittform desBaumes. Die Produktion p1 beschreibt, wie ein Apex A (noch zu wachsender Ast) eineschlafende Knospe @o und ein Ast F produziert. Das Modul /(180) ist Teil der 3D-Interpreta-tion einer Turtle und bewirkt eine halbe Drehung der Turtle um ihre eigene Achse (entsprichteinem “roll”). Damit wird erreicht, dass die Knospen abwechselnd nach links und nach rechtswachsen. Anschliessend wird wieder ein Apex A eingefügt, um das Wachstum weiterhin zuermöglichen. Die Produktion p1 wird aber nur ausgeführt, wenn die Turtle sich innerhalb derClipping-Box befindet. Dazu wird der rechte Kontext, das Query-Symbol ?P(x,y), durch dieFunktion prune überprüft. Ist die Turtle aber ausserhalb der Clipping-Box, tritt p2 in Kraft: dervorhergehende Ast F muss gestutzt werden, dazu wird er mit dem Abschneide-Symbol T mark-iert. Zusätzlich wird das Symbol % generiert. Letzteres löscht alle Symbole, die rechts davon indieser Verzweigungsebene liegen (üblicherweise bis zum Symbol ]). Damit wird das Query-Modul (im rechten Kontext) eliminiert. Die Produktion p3 schneidet einen mit T markierten AstF ab und erzeugt stattdessen das Knospen-aktivierende Symbol S. Dieses wird mit p4 und p5

nach unten propagiert, bis es auf eine schlafende Knospe trifft und diese zum Leben bzw. Wach-sen erweckt (p6).

In Abbildung 2.8 sind verschiedene Phasen des Entwicklungsprozesses dargestellt. Im sech-sten Schritt wächst der Ast der Hauptachse über die Clipping-Box hinaus. Im Schritt 7 wirddieser Ast gelöscht und das Knospen-aktivierende Symbol S losgeschickt, worauf prompt dienächste Knospe aktiviert wird. Es entsteht eine neü Verzweigung, die jedoch auch ausserhalbdes Quadrates liegt und in Schritt 9 gelöscht wird, was abermals S generiert. Dieses aktiviert inSchritt 10 wieder eine Knospe. Der Prozess setzt sich fort, bis alle schlafenden Knospen aktiv-iert wurden. Mit ähnlichen, aber wesentlich komplizierteren dreidimensionalen L-Systemen

Abbildung 2.8: Einfaches Modell eines wachsenden Baumes, der gestutzt wird.Oberste Reihe: Schritte 6, 7, 8, und 10; Mittlere Reihe: Schritte 12,13, 14 und 17; Unterste Reihe: Schritte 20, 40, 75 und 94. Die klein-en Kreise stellen schlafende Knospen dar, und die grossen Kreisezeigen die Position des Signals S an.