Survey and Draft of HouseGenerater
Skills: Houdini, Substance Painter

HouseGenerater is a tool that aims to help the artist quickly generate houses with a consistent style yet all unique in size, shape, and appearance. The goal is to use the art assets (textures and items) as the input and yield with the buildings. On this page, I will go through all the skills I learned and all the tools I made that I believe will be helpful for me to achieve the final goal of making the tool.
HighPoly bake to lowpoly
In my original thought, I wanted to create medieval buildings built with rock walls. However, I want each building created to have its unique wall, instead of using seamless texture. Therefore, I decided to create a high-poly rock brick with adjustable size, and then use it to build the walls of the buildings. After that, I intended to bake the high poly version of the walls into low poly with an uv-independent shader. This way of thinking works on a single brick. However, when it comes to making walls, the total time to generate the walls and then bake them into low-poly is enormous time. Therefore, in the end, I had to abandon this idea. 

The highpoly of the rock wall.

As an alternative solution, I ended up using seamless rock wall texture combined with midpoly rock meshes on the corners of the walls to cover up the weird edges.
Houdini VEX
During my preparation for making the tool, I learned a lot about VEX, the node that allows you to control the geometry through coding. 

1. Procedural generated brick wall:
As I mentioned above, I was going to create the walls by generating the bricks one by one. To do so, I needed to come out with an algorithm that randomly stack the bricks into walls. I was able to implement the algorithm inside a VEX code, and with the combination of using other nodes, I was able to create the stone walls shown above.

A rock wall generated with random layout and brick sizes.

Using the combination of VEX nodes, forloops, and copy nodes to create walls.

2. Placing doors, windows, and other items:
After the basic structure of the building was made, I needed another algorithm to help me place items, such as doors and windows, onto the building. I created an algorithm that can check what position the building is in for the item to be placed to fit in. This algorithm excludes the roof and other items that have already been put in.

The blue dots are the places that the item can fit in.

3. Bending the building:
From my obversion on different references and the advice I was given, I decided to give the building some curves to make it more organic. Therefore, I created a vex node to help me bend every vertex of the building mesh according to a spline I randomly generated.
Substance Painter
In addition to Houdini, I also learned how to use Substance Painter to create a seamless texture for the rock walls, the roofs, and the wood.
Final Outcome
With all the tools and skills, I was able to create the prototype of the final tool. With this prototype, the user can adjust the size and position of the house, and generate different houses.
Conclusion and Next Step
In this survey, I believe I have gained the fundamental knowledge and skills I need in order to push the tool toward the final state. In the final stage, I mainly want to solve two issues. Firstly, I wish to make the layout and amount of the windows and doors more reasonable. Secondly, I wish to make the edge of different mesh look more natural.

Back to Top