|
| 1 | +# Procedural City |
| 2 | +List of Features: |
1 | 3 |
|
2 | | -# Project 5: Shape Grammar |
| 4 | +Shape Grammar Buildings |
3 | 5 |
|
4 | | -For this assignment you'll be building directly off of the L-system code you |
5 | | -wrote last week. |
| 6 | +L-System Foliage |
6 | 7 |
|
7 | | -**Goal:** to model an urban environment using a shape grammar. |
| 8 | +Tensor-field Based Road Generation |
8 | 9 |
|
9 | | -**Note:** We’re well aware that a nice-looking procedural city is a lot of work for a single week. Focus on designing a nice building grammar. The city layout strategies outlined in class (the extended l-systems) are complex and not expected. We will be satisfied with something reasonably simple, just not a uniform grid! |
| 10 | +Custom textures, normal mapping |
10 | 11 |
|
11 | | -## Symbol Node (5 points) |
12 | | -Modify your symbol node class to include attributes necessary for rendering, such as |
13 | | -- Associated geometry instance |
14 | | -- Position |
15 | | -- Scale |
16 | | -- Anything else you may need |
17 | | - |
18 | | -## Grammar design (55 points) |
19 | | -- Design at least five shape grammar rules for producing procedural buildings. Your buildings should vary in geometry and decorative features (beyond just differently-scaled cubes!). At least some of your rules should create child geometry that is in some way dependent on its parent’s state. (20 points) |
20 | | - - Eg. A building may be subdivided along the x, y, or z axis into two smaller buildings |
21 | | - - Some of your rules must be designed to use some property about its location. (10 points) |
22 | | - - Your grammar should have some element of variation so your buildings are non-deterministic. Eg. your buildings sometimes subdivide along the x axis, and sometimes the y. (10 points) |
23 | | -- Write a renderer that will interpret the results of your shape grammar parser and adds the appropriate geometry to your scene for each symbol in your set. (10 points) |
24 | | - |
25 | | -## Create a city (30 points) |
26 | | -- Add a ground plane or some other base terrain to your scene (0 points, come on now) |
27 | | -- Using any strategy you’d like, procedurally generate features that demarcate your city into different areas in an interesting and plausible way (Just a uniform grid is neither interesting nor plausible). (20 points) |
28 | | - - Suggestions: roads, rivers, lakes, parks, high-population density |
29 | | - - Note, these features don’t have to be directly visible, like high-population density, but they should somehow be visible in the appearance or arrangement of your buildings. Eg. High population density is more likely to generate taller buildings |
30 | | -- Generate buildings throughout your city, using information about your city’s features. Color your buildings with a method that uses some aspect of its state. Eg. Color buildings by height, by population density, by number of rules used to generate it. (5 points) |
31 | | -- Document your grammar rules and general approach in the readme. (5 points) |
32 | | -- ??? |
33 | | -- Profit. |
34 | | - |
35 | | -## Make it interesting (10) |
36 | | -Experiment! Make your city a work of art. |
37 | | - |
38 | | -## Warnings: |
39 | | -If you're not careful with how many draw calls you make in a single `tick()`, |
40 | | -you can very easily blow up your CPU with this assignment. As with the L-system, |
41 | | -try to group geometry into one VBO so the run-time of your program outside of |
42 | | -the time spent generating the city is fast. |
43 | | - |
44 | | -## Suggestions for the overachievers: |
45 | | -Go for a very high level of decorative detail! |
46 | | -Place buildings with a strategy such that buildings have doors and windows that are always accessible. |
47 | | -Generate buildings with coherent interiors |
48 | | -If dividing your city into lots, generate odd-shaped lots and create building meshes that match their shape .i.e. rather than working with cubes, extrude upwards from the building footprints you find to generate a starting mesh to subdivide rather than starting with platonic geometry. |
| 12 | +Shadow Mapping, Soft Shadows |
0 commit comments