Skip to content

Commit c4bfd34

Browse files
committed
lots of additions
1 parent ca705ad commit c4bfd34

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+73794
-1440
lines changed

‎.DS_Store‎

0 Bytes
Binary file not shown.

‎README.md‎

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,12 @@
1+
# Procedural City
2+
List of Features:
13

2-
# Project 5: Shape Grammar
4+
Shape Grammar Buildings
35

4-
For this assignment you'll be building directly off of the L-system code you
5-
wrote last week.
6+
L-System Foliage
67

7-
**Goal:** to model an urban environment using a shape grammar.
8+
Tensor-field Based Road Generation
89

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
1011

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
80.2 KB
Binary file not shown.
225 KB
Binary file not shown.

‎geo/building.mb‎

70.3 MB
Binary file not shown.

‎geo/buildingcomponents.mb‎

111 KB
Binary file not shown.

‎geo/dome.mtl‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
newmtl initialShadingGroup
2+
illum 4
3+
Kd 0.50 0.50 0.50
4+
Ka 0.00 0.00 0.00
5+
Tf 1.00 1.00 1.00
6+
Ni 1.00
7+
newmtl windowplanesimple:initialParticleSE
8+
illum 4
9+
Kd 0.50 0.50 0.50
10+
Ka 0.00 0.00 0.00
11+
Tf 1.00 1.00 1.00
12+
Ni 1.00

0 commit comments

Comments
 (0)