Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
7a63857
added pictures
mikolaslorant Nov 10, 2022
514c057
Update README.md
mikolaslorant Nov 10, 2022
908cedf
Update README.md
mikolaslorant Nov 10, 2022
9784e90
Update README.md
mikolaslorant Nov 10, 2022
cf23c95
diagram
mikolaslorant Nov 10, 2022
5a567b3
merge
mikolaslorant Nov 10, 2022
b3bbdc6
Update README.md
mikolaslorant Nov 10, 2022
fd02b81
Update README.md
mikolaslorant Nov 10, 2022
dd805ad
Update README.md
mikolaslorant Nov 10, 2022
c9a5e4a
images
mikolaslorant Nov 17, 2022
045f3d1
merge done
mikolaslorant Nov 17, 2022
2e3329e
Update README.md
mikolaslorant Nov 17, 2022
8603ea5
Update README.md
mikolaslorant Nov 17, 2022
ea3c12c
added correct screenshot
mikolaslorant Nov 17, 2022
f1ebb75
merge fix
mikolaslorant Nov 17, 2022
7e08558
Update README.md
mikolaslorant Nov 29, 2022
776aeac
Update README.md
mikolaslorant Nov 29, 2022
da4ea45
Update README.md
mikolaslorant Nov 29, 2022
3f8f8d5
Add files via upload
mikolaslorant Nov 29, 2022
46e57c2
Update README.md
mikolaslorant Nov 29, 2022
10b6ea5
Update README.md
mikolaslorant Dec 6, 2022
7975a52
Add files via upload
mikolaslorant Dec 6, 2022
9cefd82
Update README.md
mikolaslorant Dec 6, 2022
7969f72
Update README.md
mikolaslorant Dec 6, 2022
9d8c994
Add files via upload
mikolaslorant Dec 6, 2022
2d54a9a
Add files via upload
mikolaslorant Dec 6, 2022
fad9187
Update README.md
mikolaslorant Dec 6, 2022
6ccfc0d
Update README.md
mikolaslorant Dec 6, 2022
71b74d6
Update README.md
mikolaslorant Dec 6, 2022
4437f33
Update README.md
mikolaslorant Dec 6, 2022
cf30efa
Update README.md
mikolaslorant Dec 6, 2022
de21d09
Update README.md
mikolaslorant Dec 6, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 139 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,105 @@ Before submitting your first milestone, _you must get your project idea and scop
Start off by forking this repository. In your README, write a design doc to outline your project goals and implementation plan. It must include the following sections:

#### Introduction
- What motivates your project?
- My final project revolves around recreating the city of Apotos from Sonic Unleashed in Houdini. The idea is to apply multiple concepts learned throughout the class such as noise functions, procedural geometry generation and city creation to achieve an aesthetically pleasing result.

#### Goal
- What do you intend to achieve with this project?
- The goal of my project is to make an efficient procedural Apotos builder in Houdini using a combination of Procedural house generation with controls and procedural terrain. The idea is that the city should look organic so it should have also trees and plants, correct materials and the structure placement should follow a logic that makes sense in the real world. For example we expect to have house along the streets in the city.
- Ultimitely the objective with this project is not scale but actually have a couple of realistic looking blocks of the village that mimmic the style of the game really well.


#### Inspiration/reference:
- You must have some form of reference material for your final project. Your reference may be a research paper, a blog post, some artwork, a video, another class at Penn, etc.
- Include in your design doc links to and images of your reference material.
- Images of Apotos in Sonic Unleashed (Game art and gameplay)

![](ref1.png)

![](ref2.png)

![](ref3.png)

![](ref4.png)

![](ref5.png)

![](ref6.png)

![](ref7.png)

![](ref8.png)


- Gameplay of the level

https://www.youtube.com/watch?v=j4OBe-rONR4


#### Specification:
- Outline the main features of your project.
- Procedural greek style houses. These will add different variations on window and door placement, roof adornments, color of windows. Varying modules will make up the total size based on the width, height and depth selected by the user.
- Procedural style mills with varying height.
- White stone material.
- User defined streets painted with the Path tool of Hudini.
- HDRI for sky downloaded online.
- Decorating assets placed procedurally such as barrels and bushes.
- Procedural terrain elevation.
- Procedural water base.

#### Techniques:
- What are the main technical/algorithmic tools you’ll be using? Give an overview, citing specific papers/articles.
- First I'll start by building the house generator using this tutorial and changing the geometry to make it more greek looking:
https://www.youtube.com/watch?v=r0e7M2B7dL0&list=PLXNFA1EysfYnxvrW27g6e5HhTwKBM2TZC
- Then I'll generate wind mills following this tutorial
https://www.youtube.com/watch?v=afHVjiNeH7A&t=2s
- Then I will generate the Terrain using this tutorial as a reference:
https://www.youtube.com/watch?v=rwLbiuKX5D0
- I will generate the cobblestone paths using this tutorial:
https://www.youtube.com/watch?v=QH6Kk7_AJec
- I will make the base stone material white and change the color of the wood material.
- I will look for decorator assets online such as barrels, bushes and lamps that will be placed based on the previously referenced material.
- Will follow some of the tips here for material setup
https://www.youtube.com/watch?v=IcbzGNqnFkA



#### Design:
- How will your program fit together? Make a simple free-body diagram illustrating the pieces.

![](diagram.jpg)

#### Timeline:
- Create a week-by-week set of milestones for each person in your group. Make sure you explicitly outline what each group member's duties will be.
- (11/9) Mileston 1 work: have the terrain generation, the house generator and the mill generator HDAs done.
- (11/16) Add some decorator such trees and barrels.
- (11/23) Milestone 2 work: have the houses realigned as well as mills. Avoid overlapping geometry. Add optimizations with any file caching as needed and setup camera for renders. Have the base layout of a couple of blocks of the village.
- (11/28) Final submission work: Download HDRIs and any missing material to prepare renders. Create renders.
- (12/5) Have the renders ready

Submit your Design doc as usual via pull request against this repository.
## Milestone 1: Implementation part 1 (due 11/16)

* Added house generator: based on an extruded L system with random window types and door placement plus roof and no roof mode.


![](house2.png)

![](house3.png)

![](house4.png)


* Added procedural terrain: various types of noise and masks to get terrain


![](proceduralterrain.png)


* Road generator: using voronoi noise and curve projections


![](roadgenerator.png)


* General state of things: I'm behind on the mill generator. The house generator took me longer than expected but I should have it ready for next milestone. Also haven't been able to push houdini files yet because they are too heavy. Looking to solve that.

![](stateOfThings.png)


Begin implementing your engine! Don't worry too much about polish or parameter tuning -- this week is about getting together the bulk of your generator implemented. By the end of the week, even if your visuals are crude, the majority of your generator's functionality should be done.

Put all your code in your forked repository.
Expand All @@ -41,6 +117,25 @@ Submission: Add a new section to your README titled: Milestone #1, which should
- Examples of your generators output so far
We'll check your repository for updates. No need to create a new pull request.
## Milestone 3: Implementation part 2 (due 11/28)

![](milestone2progress.png)


* Added more details to the road and adjusted form.
* Added procedural windmill created with L-Systems.
* Added Polyhaven sky hdri.
* Added more detail to the terrain.
* Added quixel megascans assets for materials in road, house concrete, windmill, grass, and cliffside.

![](milestone2progress2.png)

* Added tree part.
* Since the file is too heavy for github I loaded it here to google drive https://drive.google.com/drive/folders/1ktqONZbyFW1bz0l2qw-rwIQqHJL6xMoR?usp=sharing.
* I'm still missing some materials and some assets like grass scattering.




We're over halfway there! This week should be about fixing bugs and extending the core of your generator. Make sure by the end of this week _your generator works and is feature complete._ Any core engine features that don't make it in this week should be cut! Don't worry if you haven't managed to exactly hit your goals. We're more interested in seeing proof of your development effort than knowing your planned everything perfectly.

Put all your code in your forked repository.
Expand All @@ -52,7 +147,43 @@ We'll check your repository for updates. No need to create a new pull request.

Come to class on the due date with a WORKING COPY of your project. We'll be spending time in class critiquing and reviewing your work so far.





## Final submission (due 12/5)

Link to content and assets: https://drive.google.com/drive/folders/1ktqONZbyFW1bz0l2qw-rwIQqHJL6xMoR?usp=share_link
The quixel assets are in the Downloaded folder, so certain paths would have to be reset for the project to look well locally.

# Things I accomplished for this submission:

* Added textures and materials for all objects.
* Added Trees, Grass, and scattered rocks.
* Polished house placement.
* Did final render edited colors with post process effect.

# Final result render

![](imageRenderFinalEdited.png)

# Post mortem

I believe my project went very well. I encountered some limitations in terms of hardware. For example I wanted more detailed grass and also have bodies of water but my laptop was not strong enough to handle it. So that made me make different choices such as scattering rocks in the valley.

Having a set camera from the beginning allowed me to cut back on a lot of geometry that would not end up in the frame. But, this also elminated my flexibility on composition in the end.

I believe this project was a great experience since I got to interact with a lot of different techniques and tools we used during the course such as: L-System, Procedural materials, Procedural geometry creation for villages/cities, Curved paramter, noise for terrain ,element placement and more.
I think in the future I would like to experiment more with procedural city creation since I found it to be very fun.

Also, this project was an opportunity to learn a lot of parts of Houdini and took me out of my confort zone of classic coding. I feel I have so much more to learn but it was a great starting place.

Ideally I would have love to use the generated environment in a game prototype but due to limited time I couldn't.
There are things I would like to expand on in the future, such as improving the scale of the city, adding more variation on the assets and large bodies of water.


## Rest of the assignment explanation

Time to polish! Spen this last week of your project using your generator to produce beautiful output. Add textures, tune parameters, play with colors, play with camera animation. Take the feedback from class critques and use it to take your project to the next level.

Submission:
Expand Down
Binary file added diagram.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added house2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added house3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added house4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imageRenderFinal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added imageRenderFinalEdited.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added milestone2progress.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added milestone2progress2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added proceduralterrain.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ref8.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added roadgenerator.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added stateOfThings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.