Top Banner
Kyle Cheng, Devin Gardella, Eli Goldstein, Matt LaRose, Tony Liu, Diwas Timilsina, Kai Wang, Kelly Wang, David Yan Procedural Cities
45

Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Jul 21, 2020

Download

Documents

dariahiddleston
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: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Kyle Cheng, Devin Gardella, Eli Goldstein, Matt LaRose, Tony Liu, Diwas Timilsina, Kai Wang, Kelly Wang, David Yan

Procedural Cities

5 seconds - kyle

Page 2: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Presentation Roadmap

Background

Building Grammarsstack-basedrectangle-based

City Layout

Film Development

Page 4: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Presentation Roadmap

Background

Building Grammarsstack-basedrectangle-based

City Layout

Film Development

Page 5: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Stack-Based Building Grammarused by Kowloon, EliBuilding, TonyBuilding

Foundation

Terminals

Vertical Expansion

Horizontal(Decorative) Expansion

Termination

Grids of stacks of OBJs, where each OBJ stores its own information about rotation, translation, and scale

Floorplan

Axioms

Expansion rules

Page 6: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Basic Stack-Grammar Building Examples

Terminals

Rules { , }

Nonterminals

Horizontal (decorators) Vertical (roofs, roof ornaments)

Page 7: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Basic Stack-Grammar Building Examples

Terminals

Rules

{ , }

NonterminalsWith the following simple context:

if height > 1:stack.terminateVertical()

else:stack.terminateHoriz() and orstack.repeatUp()

We can get a building similar to the one on the right

Page 8: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Presentation Roadmap

Background

Building Grammarsstack-basedrectangle-based

City Layout

Film Development

Page 9: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Rectangle-based Building Grammar used by KyleBuilding

Inputs: - width- length- height- seed

grammar differentiation - terminals and nonterminals are groupings of primitives 10 seconds - Kyle

Page 10: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Build Rectangular Object

Page 11: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Rectangular object composed of 3d grid of cubes

Page 12: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Define behavior for xz cube stacks

Page 13: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Define behavior for xz cube stacks

Page 14: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Example of cube stack expansion

Page 15: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Expansion in context of rectangularobject

Page 16: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Buildings composed of multiple rectangular objects

Page 17: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

More Detail : Each colored object is several unique stacked rectangular objects

Page 18: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Choose from set of rectangular objects

Page 19: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Choose next Expander,repeat

Page 20: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Choose next Expander,repeat

Page 21: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Stop iteration at max_height

Page 22: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Expand out several colored objects

Page 23: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Page 24: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Page 25: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Page 26: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rectangle-based Building Grammar

Page 27: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Rendered Result

Page 28: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Grammar Elements and Well-Defined Rec Behavior

Page 29: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

10 seconds - Kyle

Scalability

Page 30: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Presentation Roadmap

Background

Building Grammarsstack-basedrectangle-based

City Layout

Film Development

Page 31: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

2 minutes (max) - Kai and Devin City Layout

generateBuilding()

- x,y,z,yaw,pitch,roll

- width,length,height

- building type

Scene

obj & mtl filesgeneratorsconfig file

Simple Grid Generator

City Layout

Page 32: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Voronoi Diagram

- Region defined by the closest point

- In terms of Manhattan distance: ( x - x0) + ( y - y0)

Randomly Generated Diagram

Page 33: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Tuning the Diagram

- Manually place points

Diagram Used in the Scene

Page 34: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Tuning the Diagram

- Adding Sub-Districts

- Second-order Voronoi

Diagram Used in the Scene

Page 35: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Building Placement

- Customize each district (.vor)

- Road size - Building density - Probability for each type of building - Tidiness - Grid size - Height, width and length function

- Global parameters (.cfg)

- Scale - Overall density - Overall road size - Cube or actual building

Diagram with Buildings

Page 36: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Tidiness

Tidiness = 1.0Grid Generator

Tidiness = 0.7Default Setting

Tidiness = 0.0Random Placement

Page 37: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Height function

Linear height functionh = a + bx

Uniform height distribution

Cubic height functionh = a + bx^3

More shorter buildings

Page 38: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Finished Layout (~4500 buildings)

2D Layout 3D View from top

Page 39: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

The Dream

Page 40: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()
Page 41: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

TEven Larger...Even Larger...

Page 42: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Memory Issues

High memory consumption● 200 Buildings = ~2 GB

Optimization● Reduce number of triangles● Reduce precision● Better/more computers● Less buildings

Planning Memory Usage

Page 43: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Presentation Roadmap

Background

Building Grammarsstack-basedrectangle-based

City Layout

Film Development

Page 44: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Creating a Compelling Film

● Inspiration from “the Timeless” and city tourist videos● Hand placed splines in a dummy city● Replaced cubes with actual buildings

First set camera splines in a demo city

A screenshot from the final film

Page 45: Procedural Cities · Presentation Roadmap Background Building Grammars stack-based rectangle-based City Layout Film Development. 2 minutes (max) - Kai and Devin City Layout generateBuilding()

Presentation Roadmap

Background

Building Grammarsstack-basedrectangle-based

City Layout

Film Development

Thank you