Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hw03: Christine Kneer #13

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
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
124 changes: 72 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,74 @@
# CIS 5660 HW03 Procedural Buildings

## Project Overview
In this homework you’ll gain more experience with tool creation and loops. The core of this homework will be following a Procedural House tutorial to create a multi-floor building generator. The tutorial is linked here:
https://www.youtube.com/watch?v=uIe97023sDk&t=979s&ab_channel=SimonHoudini

## Part 0: Setup and Planning
### SideFX Labs
The tutorial requires some nodes from SideFX Labs. If you haven’t already installed it, you can do so at the “Labs/Packages” tab of the Houdini Launcher.

### Project Planning
Before you begin on this project, skim through the tutorial and then pick a building type/style you’d like to emulate (either from photos or concept art). You should watch the entirety of the tutorial before committing to a style so you can pick something that is manageable and will be achievable using the techniques in the tutorial.
Of course, you’re welcome to adapt the setup to support additional logic/features to match your style, and particularly complex additions could merit extra credit :) On the other hand, if you’re newer to Houdini and want to stick relatively close to the tutorial, that’s okay too. Just be sure to think through what changes your chosen buildings will require (additional assets? different placement logic?) before diving into the project so you don’t bite off more than you can chew.
Make sure the include the reference you select in your README, and don’t forget to credit your sources.
Here are a few examples of possible building styles that could be a decent fit for inspiration:
CIS 5660 HW03 Procedural Building 1
https://www.behance.net/gallery/23773965/ISOBuilding-concept-art

https://polycount.com/discussio
low-poly-building
https://www.artstation.com/artwork/m6xYy

## Part 1: Box Stacking HDA
First, start by following the tutorial to make a simple HDA that stacks boxes on each other. Important note about HDA creation:
Creating an HDA saves a .hda file at the location you specify with the definition of your HDA. Be sure to submit this .hda file along with your .hip file so we can see the contents of your tool.
Alternatively, when you save your HDA you can choose the “Embedded in HIP File” option (rather than specifying the path), and the hda definition will be automatically embedded in your hip file (and no additional files will be needed with submission).

## Part 2: Add Details
Next, Simon adds details to the boxes to create floors by refiing the shape and adding details like windows, doors, and balconies.
Create your own models for windows, doors, and balconies based on your chosen style using Houdini. For each of the three types, create a Null “control” node with parameters that affect your window/door/balcony output (similar to how we made a control node for the jellyfish).
You should have parameters to drive the width and height of the doors, windows, and balconies, as well as at least one other parameter of your choosing on each one (ex: double vs single doors, windows with and without shutters, and type of balcony railing). Apart from that, you can go as simple or complex as you like!
Then follow Simon’s setup to integrate your windows, doors, and balconies into your buildings.
CIS 5660 HW03 Procedural Building 2

## Part 3: Pillars and Border
Continue following the tutorial to add pillars and borders to each floor.

## Part 4: Supports
Continue following the tutorial to add supports to floors that overhang other floors.
(Optional) Extra Credit
Throughout the tutorial, Simon mentions ways you could extend his project setup. Implement any of his suggestions:
More complex logic for creating supports (handle different length supports differently) Add more parameters to the user interface (for example, x and z offset options) UV and shade your models
Add a “manual node” where users can control detail placement manually
Add additional types of feature models (like fire escapes or chimneys). Note that, depending on what you choose, you might need to add new logic to integrate them into your building (ex: chimneys go on top instead of being chained on the side, fire escapes should be on one side of the building and go all the way down). We’ll award more extra credit accordingly.
Add some flair to your scene by dressing together multiple buildings or additional procedural props or background elements
Render your scene

## Submission
Update your README with
A description of your project
A video of your building tool in action
Create a pull request to this repository
Submit your Houdini file to Canvas along with a link to your pull request
IMPORTANT NOTE: make sure your HDA is either embedded in the HIP file or included with your submission (see the instructions under “Part 1: Box Stacking HDA” for additional details).
## Overview
In this project, I created a procedural multi-floor building generator in Houdini.

![image](https://github.com/user-attachments/assets/835ba82c-1e45-4694-a6c5-beb3d957e999)

https://github.com/user-attachments/assets/16f4439b-b282-439f-86ba-60c067301c82

Video Link: https://github.com/user-attachments/assets/16f4439b-b282-439f-86ba-60c067301c82

Since I am very new to Houdini, I was mostly sticking to the provided tutorial. Overwatch is actually my favorite game so I was very happy with the style!

### Box Stacking & Details

The first part involves creating a custom HDA that stacks buildings on top of each other.

![image](https://github.com/user-attachments/assets/db44d44a-ac61-4e8f-8508-0018b902475b)

Then assets including procedurally created window, door and balcony models are randomly added to the walls.

|![image](https://github.com/user-attachments/assets/6f16d931-1bce-4883-bfac-66059089c343)|![image](https://github.com/user-attachments/assets/dc5feb1a-858f-4dff-baa4-406177c15929)|![image](https://github.com/user-attachments/assets/fd650a22-bfe5-43c3-b8c0-2c5782fc01b1)|![image](https://github.com/user-attachments/assets/ed4a7b45-e0cd-4408-af61-6681b0a625d5)|
|:--:|:--:|:--:|:--:|
|*Small Window*|*Large Window*|*Door*|*Balcony*|

Each asset has customizable parameters that can be controlled by the asset controller.

![image](https://github.com/user-attachments/assets/252a1080-3238-4c9f-848e-84aa5d48ef3d)

#### Small Window

Small window can be adjusted on width, height & frame width.

![Untitled video - Made with Clipchamp](https://github.com/user-attachments/assets/2e694b80-425f-4f76-8e83-7785f495e2c5)


#### Large Window

Large window can be adjusted on width, height, row & column.

![Untitled video - Made with Clipchamp (1)](https://github.com/user-attachments/assets/50b91d6e-2842-42fc-96ed-0808a46a5d35)


#### Door

Door can be adjusted on width, height & with/without knob.

![Untitled video - Made with Clipchamp (2)](https://github.com/user-attachments/assets/ed2d12aa-fd79-451c-ba71-0325f1984246)


#### Balcony

Balcony can be adjusted on width, height & rail density.

![Untitled video - Made with Clipchamp (3)](https://github.com/user-attachments/assets/7dab776b-15a6-4952-87e7-14ff6ff49b7c)


### Pillar

Pillar are then added to the building by placing boxes on the corners of each floor.

![image](https://github.com/user-attachments/assets/eb5af282-24c6-447d-845a-0897999165a5)


### Support

Finally, supports are added for floors that extend outwards.

![image](https://github.com/user-attachments/assets/fba7fc90-1029-4995-9c28-c5e71c81917a)


## Credits

- Simon Houdini's tutorial: https://www.youtube.com/watch?v=uIe97023sDk&t=979s&ab_channel=SimonHoudini