18
52 6. PROZEDURALE GEBÄUDEGENERIERUNG

Master thesis pascal_mueller04

Embed Size (px)

Citation preview

Page 1: Master thesis pascal_mueller04

52 6. PROZEDURALE GEBÄUDEGENERIERUNG

Page 2: Master thesis pascal_mueller04

53

7CityEngineUser Manual

7.1 Die Oberfäche

Das Programm wird mit dem Kommando CityEngine gestartet. Abbildung 7.1 zeigt einenScreenshot, nachdem ein Parameterfile geladen wurde, und anschliessend ein Strassennetzwerkerzeugt wurde.

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).

Abbildung 7.1: Die Oberfläche der CityEngine.

Page 3: Master thesis pascal_mueller04

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 mitder richtigen Skalierung dargestellt werden. Die Steuerung desWorkspace bleibt in allen Modulen gleich. Befindet sich die Mausüber dem Workspace werden in der Informationline die Koordinatenund der Wert (0 bis 1) des aktiven Hintergrundbildes angezeigt. DerUrsprung (0,0) ist links unten. Mit den Scrollbars oder der mittlerenMaustaste kann gescrollt werden. Drückt man die rechte Maustasteerscheint das in Abbildung 7.2 dargestellte Menu. Der untere Teil desMenus ist für das Zooming verantwortlich (Shortcuts für Zoom Inund Zoom Out: Ctrl-+ und Ctrl--). Im oberen Teil kann eines derHintergrundbilder zur Anzeige ausgewählt werden. Da Tk für dieBilddarstellung verantwortlich ist, ist es ratsam, wenn sehr nahherangezoomt wurde, das Hintergrundbild auszuschalten (EintragNone). In der mittleren Sektion des Menus können die Kontrollbilderder 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, geladenund gespeichert werden (durch die ersten Einträge des Menus oderdie beiden Buttons und ). In der nächsten Sektion könnenAnzeigeoptionen für den Workspace eingestellt werden. Man kannanwählen, welche Daten angezeigt werden sollen, da zum Teil inModulen mehrere Datentypen speziell dargestellt werden. Über denEintrag Preferences kann ein Fenster mit allgemeinen Einstellungengeöffnet werden.

Die 19 Parameter im Preferences-Fenster werden auf dieselbe Artdargestellt wie in einem Parameterpanel. In diesem Fenster könnenWerte 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 vomgesamten 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 Modulenbenötigten Graph-Datenstruktur sollten nur in Extremfällen editiert werden. Bei Änderungender Parameter sollte das Parameterfile abgespeichert und neu geladen werden, da viele Klassenneu 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ändertwerden).

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).

Abbildung 7.2:Workspace-Menu

Abbildung 7.3:File-Menu

Page 4: Master thesis pascal_mueller04

7.2 STRASSENNETZWERKERZEUGUNG (LSYSTEM-MODUL) 55

Die Generierung eines Strassennetzwerks für eine Region von ca. 100 Quadratkilometerndauert 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) dienenderselben Funktion wie die drei oben schon erwähnten Buttonsdieses Moduls. Eingeschaltet bewirkt die Option Save Cells Animation,dass nach jedem Ersetzungschritt ein Bild des Diffusionsystemsabgespeichert wird. Die TIFF-Bilder werden im Projektverzeichnisim Ordner images abgelegt. Die Auflösung kann im Preferences-Fenster gewählt werden. Das Kommando View Cells Animation startetden Animationsplayer von Maya (fcheck) und lädt die Animation.Die unterste Sektion des Menus ist dynamisch und enthält sovieleEinträge, wie das L-System Regeln hat. Durch Anwählen eines Ein-trags wird ein Parameterfenster eines Ruleparameterfiles geöffnet.Die Reihenfolge dieser Menu-Einträge entspricht der Reihenfolgeder Regeln im LSystem-Parameterpanel.

7.2.2 Timeline

Nachdem ein Strassennetzwerk generiert wurde, kann in der Timeline der maximaleErsetzungsschritt gewählt werden, der angezeigt werden soll. Klickt man mit der linkenMaustaste auf die Timeline, bewegt sich der Timeslider um einen Ersetzungschritt in Richtungdes Mauscursors (Shortcuts: Left/Right). Wird die Maus gleichzeitig bewegt, springt derTimeslider direkt zum Mauscursor und der Timeslider verhält sich wie eine Scrollbar. Klicktman die rechte Maustaste, wird die Entwicklung des Strassennetzwerks im Animationsmodusgezeigt (gestoppt wird durch nochmaliges Klicken der rechten Maustaste). Die Timeline dientauch als Progressbar für das L-System. Mit der mittleren Maustaste setzt man den maximalenErsetzungsschritt, der vom L-System berechnet werden soll. Die Bedienung durch die mittlereTaste gestaltet sich gleich wie mit der linken Taste (Shortcuts: Shift Left/Right). DieserMaximalwert wird durch einen vertikalen, weissen Strich dargestellt. Im Gegensatz zumTimeslider 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 dieBerechnung eines L-Systems, wird die Timeline zur Progressbar: Der horizontale, weisseBalken 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 dieAnzahl 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-Systemsbenötigt. Danach folgen die Parameter des Diffusionssystems und die Daten des Axioms. DasAxiom kann auch im Workspace bestimmt werden, indem mit der linken Maustaste eine Liniebzw. Strasse gezeichnet wird. Die restlichen Parameter werden zur Kontrolle des umgebungs-sensitiven Teil des L-Systems benötigt. Oft werden Zufallszahlengeneratoren definiert. Diesesind 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

Abbildung 7.4:LSystem-Menu

Page 5: Master thesis pascal_mueller04

56 7. CITYENGINE USER MANUAL

Parameter verlangt: ein Seed, ein Minimalwert und ein Maximalwert. Ansonsten sollte dieBedeutung 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 solltedie Parameter des selbstsensitiven Teils editiert werden, da das Einfügen von Strassen in denGraphen durchgeführt wird und keine anderen Parameter den Vorgang beeinflussen. Hat manakzeptable Werte gefunden, kann man den umgebungssensitiven Teil des L-Systems editieren.Da hier Zufallszahlengeneratoren aktiv sind, sollte man sich erst mit den Parameterwertenzufrieden geben, wenn gute Resultate mit mehreren Seeds erzeugt werden konnten. Falls einParametereintrag den Fokus hat, d.h. der Mauszeiger befindet sich über dem Eingabefeld, wirddurch Drücken der Return-Taste der Wert des Parameters um eins erhöht und automatisch dasL-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. Deroben erwähnte Shortcut um Seeds zu testen funktioniert auch hier. Editiert man die Parametereiner Regel, muss man vorsichtig sein, dass die Änderungen nicht vom umgebungssensitivenTeil abgefangen werden. Setzt man beispielsweise eine Topological Rule neu ein, wird diesenur flache und sehr steile Strassen erzeugen. Dadurch wird die umgebungssensitive Überprü-fung problematisch, falls die Werte von Elevation_Threshold_Highway und Elevation_Threshold_Road imParameterpanel nicht angepasst wurden. Zuerst sollte immer das Verhalten der Highways edit-iert werden. Dies kann effizient durchgeführt werden, indem man den beiden ParameternRoad_Branch_Delay_Min und Road_Branch_Delay_Max hohe Wert gibt (diese Parameter kommen in jederRule vor), und das L-System nur ca. 300 Ersetzungsschritte generieren lässt. So werdenbestimmt 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 deranderen 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 Rulewurde um die Parameter erweitert, die das Grid definieren. Die Topological Rule hat zweiSchwellwerte 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 erstenButton ( ) 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 Graphengezeichnet werden (Option Show Crossings im File-Menu eingeschaltet)

Mit der linken Maustaste können im Workspace Strassen selektiert werden. Durch nochmaligesAnwählen werden sie wieder aus der Selektionsliste gelöscht. Drückt man die Shift-Taste unddie 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 Berechnenvon TIFF-Bildern des Graphen eingestellt werden. Die Timeline ist eine reduzierte Version derTimeline des L-System-Moduls, da weder Progressbar noch Animationsmodus in diesemModul benötigt werden.

Page 6: Master thesis pascal_mueller04

7.4 PARZELLIERUNG UND GEBÄUDEGENERIERUNG (ALLOTMENTS-MODUL) 57

7.3.1 Streets-Menu

Ist ein Strassennetzwerk geladen ( oder Get Streetnetwork), kann es alsGraphfile (Endung: .gra) abgespeichert werden. Ein Graphfile kannjederzeit, 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öschtwerden (Shortcut: Delete). Die dritte Sektion ist verantwortlich fürdas 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 derEntwicklung abspeichern, kann man Render TIFF bzw.Render TIFF Sequence anwählen. Die Bilder werden im Projektverzeich-nis im Ordner images abgelegt. Die beiden View...-Befehle startenfcheck (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. DerButton 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äuserblocksunterteilt wurden (mit Button ).

Im Parameterpanel befinden sich Kontrollwerte der oben erwähnten Operationen und Einstel-lungen zur Gebäudegenerierung. Besonders erwähnenswert ist der ParameterMax_House_Ground_Area, welcher das Abbruchkriterium der Subdivision neben der Populations-dichte entscheidend mitbestimmt.

Abbildung 7.5: Das Strasseneditor-Modul.

Abbildung 7.6:Streets-Menu

Page 7: Master thesis pascal_mueller04

58 7. CITYENGINE USER MANUAL

7.4.1 Allotments-Menu

Der Eintrag Get Blocks extrahiert die Häuserblocks (wie Button ).Diese können als Blockfile (Endung: .p) abgespeichert und geladenwerden. Mit gedrückter Shift-Taste und der linken Maustaste kanneine Bounding Box im Workspace definiert werden. Ist diese aktiv,werden nur Blocks innerhalb der Bounding Box abgespeichert. Mankann sie wieder deaktivieren, indem man mit gedrückter Shifttastedie linke Maustaste klickt (ohne die Maus dabei zu bewegen).Cut Streets erzeugt die Strassenkorridore. Die dritte Sektion desMenus ist verantwortlich für die Unterteilung der Häuserblocks: Istder Eintrag Inside Lots eingeschaltet, werden Gebäudegrundrisse, diekeine Kante an einer Strasse haben, nicht verworfen. Die OptionConvert Rectangle bewirkt, dass viereckige Polygone, die nahezu einerechteckige Form haben in Rechtecke verwandelt werden. Dazu wirdeine In-Box berechnet. Die Unterteilung wird duch Anwählen vonDivide into Lots durchgeführt. Die daraus entstanden Gebäudegrund-risse können als Lotfile (Endung: .p+) abgespeichert und geladenwerden.

7.4.2 Buildings-Menu

Der erste Eintrag ruft für jeden Grundriss eines der Shape GrammarL-Systeme auf und speichert diese als Stringfiles. Die verschiedenenL-Systeme können mit dem Pythonskript LSystemControl.pykontrolliert 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 generiertenStringfiles der Polygondatenstruktur zugewiesen. Der Button ruftdiese beiden Befehle nacheinander auf. Die Strings werden erst inter-pretiert, wenn die Gebäude abgespeichert werden. Der EintragGenerate Shapestrings (one Rule) verwendet nur das im Parameterpanelangegebene Shape Grammar L-System (Parameter Building_Rule_File).Der Befehl Attach Shapestring (File) weist allen Gebäudegrundrissen

Abbildung 7.7: Das Allotments-Modul.

Abbildung 7.8:Allotments-Menu

Abbildung 7.9:Buildings-Menu

Page 8: Master thesis pascal_mueller04

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 ShapeGrammar L-Systeme entwickelt werden. Ist die Option Procedural Texturing ausgeschaltet, werdender Geometrie Mapping-Texturkoordinaten zugewiesen (siehe B.9).

Page 9: Master thesis pascal_mueller04

60 7. CITYENGINE USER MANUAL

Page 10: Master thesis pascal_mueller04

61

8Resultate

In diesem Kapitel werden einige Bilder präsentiert, die mit der CityEngine bzw. Maya erzeugtwurden. Die entsprechenden vollständigen Sequenzen sind im zugehörigen Siggraph-Video zusehen. Im ersten Beispiel wurde eine der Stadt Zürich ähnliche Topologie benutzt, im zweitenBeispiel 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 dasStrassennetzwerk, dessen Generierung etwa 20 Sekunden dauerte. Die Eingabebilder Wasser-Land und Parks sind entsprechend eingefärbt (weitere Eingabebilder sind in Abbildung 3.2dargestellt). Der Wachstum beginnt in der Mitte der zyklisch angeordneten Stadt (→ RadialRule). In den Gebieten mit stark steigender Elevation folgt der Wachstum den Gesetzen derTopographical Rule. In diesem Beispiel ist gut zu erkennen, wie der Wachstum der Strassendurch die nach aussen niedrigere Populationsdichte bedingt, entsprechend abnimmt und so nurnoch Agglomerationen erzeugt werden (→ Open L-System).

In Abbildung 8.2 und 8.3 sind Renderings einer Szene mit ungefähr 37’000 Gebäuden zusehen. 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 20Minuten (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 niedrigeingestellt 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.

Page 11: Master thesis pascal_mueller04

62 8. RESULTATE

Abbildung 8.1: Das generierte Strassennetz von Zürich. Oben: Entwicklung derHighways nach 50 und 100 Ersetzungsschritten. Unten: Dasendgültige Strassennetz mit Highways und Streets (551. Schritt).

Page 12: Master thesis pascal_mueller04

8.1 ZÜRICH 63

Abbildung 8.2: In Maya gerenderte Bilder einer Stadt, die mit der CityEngineerzeugt wurde.

Page 13: Master thesis pascal_mueller04

64 8. RESULTATE

8.2 Manhattan

Das Gebiet ist 12 km lang und 5 km breit. Abbildung 8.4 illustriert das Strassennetzwerk, dessenGenerierung etwa 10 Sekunden dauerte. Das Wachstum beginnt im vorderen Teil der Insel undfolgt zuerst den Gesetzen der Western Rule und anschliessend denen der Grid Rule. Die LocalConstraints 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äudenzu sehen. Die Generierung der Gebäudeformen dauerte ca. 15 Minuten, das Interpretieren undEinlesen der Daten in Maya dauerte nochmals 15 Minuten. Die Gebäudeformen sind in diesemBeispiel wesentlich komplexer als bei der Zürich-Szenerie (beispielsweise sind die auf denDächern Kamine und Geländer zu sehen). Die Bilder wurden mit Raytracing mit Reflektions-tiefe 2 und Schatten berechnet (durchschnittliche Renderzeit: 6 Minuten).

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

Page 14: Master thesis pascal_mueller04

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 echteStrassenkarte zum Vergleich.

Page 15: Master thesis pascal_mueller04

66 8. RESULTATE

Abbildung 8.5: Renderings vom virtuellen Manhattan. Das oberste Bild zeigt dieSpiegelung der Stadt in einem stark reflektierenden Fenster (mitBumpmap).

Page 16: Master thesis pascal_mueller04

8.2 MANHATTAN 67

Abbildung 8.6: Weitere Renderings aus dem virtuellen Manhattan (Fortsetzung vonAbbildung 8.5).

Page 17: Master thesis pascal_mueller04

68 8. RESULTATE

Page 18: Master thesis pascal_mueller04

69

9Schlussbemerkungen

9.1 Fazit

Im momentanen Stand der Entwicklung, indem sich die CityEngine befindet, eignet sie sich gutfür Anwendungen in Filmproduktionen. Die CityEngine erfüllt fast alle Anforderungegen dieeine Filmproduktion verlangt: Das Modeling ist schnell (d.h. billig), die ganze Pipeline sehrflexibel und mit dem Output können visuell ansprechende Bilder produziert werden. Derbenö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, durchdessen Verwendung die Renderzeiten um einiges verkürzt werden könnten. Die CityEnginekann in jeder Phase einer Filmproduktion benutzt werden: Das Design der Stadt kann mit ihrerHilfe 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 dieErzeugung von Hintergrundgeometrien und andererseits können mit der CityEngine ShapeGrammar auf einfache Weise Gebäude entworfen werden.

Um die CityEngine in der Game Industrie zu benutzen, müsste vor allem das Modeling derStrassenzonen verbessert werden. Im Film, wo die Einstellungen bekannt sind, können nötigeDetails wie beispielsweise Strassenlaternen ohne grossen Aufwand manuell platziert werden. Ineinem 3D-Game müsste dies im ganzen Stadtmodel gemacht werden (falls der Spieler dieFreiheit hat, überall hinzugehen). Ein weiterer Nachteil der CityEngine ist der fehlende Levelof Detail, welcher in der Game Industrie ein Muss ist. Dass die Strassennetzwerkerzeugung imBereich des Urban Streetnetwork Modeling verwendet wird, ist momentan eher unwahrschein-lich, da bautechnische Strassenmodelle, wie beispielsweise das Bauen einer Einfahrt, nicht inder 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 denumgebungssensitiven und selbstsensitiven Teil, sowie die Integration neuer Regeln imL-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