Patrick Hausmann's profile

Procedural Tire Generator

PROCEDURAL TIRE GENERATOR
The idea of this project was to create a procedural tool that generates clean highpoly geometry of car tires based on simple black and white profiles (provided e.g. as JPGs, PNGs, etc.).
The tool should then output a lowpoly version of the tire with according texture-maps for Normal, Displacement and Ambient Occlusion.
The inputs to the tool are - among others - tire diameter, flank width, contour bevel and of course the actual tire profile.
After the inputs are set the tool first generates a "cake slice" of the tire, so e.g. 1/72 of the whole geometry. Using an attribute-from-map SOP the tool then projects the black/white profile texture onto this piece of the tire and extrudes the profile geometry.
The slice then gets copied radially to complete the full tire model.
It might be worth noting that the generated tire has a set of two different UVs. The first is optimized for mapping along the running surface of the tire - so for the profile displacement and normals. The second UV set is optimized for mapping along the rotational axis - this helps using tire-sidewall textures and add that last bit of detail to the final render.
Here's a look at the complete node-graph and how it looks inside Houdini:
Here's a look at some of the profiles I used to test the tool:
As the different values for tire diameter, flank width and chosen profile result in a large number of combinations it was obvious to use wedging/PDG with this project.
If you don't know: PDGs (Procedural Depency Graphs) are a tool within Houdini that helps automate processes (If you know takes from other softwares, think of it as takes on steroids).
Here's my PDG network inside Houdinis TOPs:
The network wedges the above mentioned parameters and also controls a bunch of ROPs (this is done by the last node "write_fbx_and_bake").
ROPs are output nodes in Houdini that can create all sorts of things. In this case I used them to create an FBX-output with the lowpoly geo and to bake and output Normal-, Displacement- and Ambient Occlusion textures.
The outputs are of course procedurally named and everything is put into individual folders to keep it nice and clean.
Here's how it looks in Windows:
In a first run I created 594 different sets of tires with individual textures over night. To help keeping a good orientation within the generated folders I also used a Redshift-ROP to automatically render thumbnails from the generated models.
An interesting follow-up project would be a procedural rim generator... Well - who knows what comes next :)

Thanks for watching!
Follow my work:
Procedural Tire Generator
Published:

Owner

Procedural Tire Generator

Published: