Creating Presets with Houdini :: Part 1 Pebbles

General / 18 April 2022

Making presets can be one of those time-consuming tasks, and a necessary evil. I preferred not to spend too long doing just that, but also don’t want my work to suffer through the use of poorly made, low quality presets. This article is the first on  a series where I touch on how to use a combination of Houdini and zbrush to generate presets. Which can be used later on for multiple things such as: reused as insert multi brushes, alphas in substance designer, alphas in substance painter, base mesh for assets that could go in the engine, etc.

For this article, I will focus on how I  use Houdini SideFx to quickly break up an existing sculpt into smaller pieces. I do want to point that this article is meant for artist. And how artists could potentially start getting their feet wet by navigating the intimidating landscape of Houdini, to understand its complexity and come up with workflows that work for them! ( YOU!!! )

I also want to point out that the technical nature of Houdini makes it a dangerous program to use, since you can easily spend hours plugin nodes and not get the results you want. My advise is to have patience, and to remind yourself that if you manage to get something that looks half decent, you can always export it out and pick up the next step in zbrush. One of the easiest tasks anyone can do to gain  a good comfort level with Houdini is to use it to fracture objects. Something which can be tedious to do by hand. Houdini makes this process very fast and low time consuming. Below is the original brick, imported into Houdini from Zbrush.

The end goal is to generate this :

To later apply and use them here :

The steps to achieve this are listed below:

STEP ONE - Shattering your object:

  1. Import your mesh.

A) Create a file node, and point your obj within the file browser. ( after wards you can plug any other model to this file and houdini will shatter it for you!

B) Create a voroni fracture node, this is what will be used to fracture your asset. But it will need some sort of source points to know where it needs to shatter the object.

C) Create a scatter node. This node will make a bounding box of your object, and create randomly scattered points inside. Think of it as a cloud of points. This I what tells the voroni fracture where to break things.

D) You can use a explodedview node after the fact the offset each of the fractured pieces. 

STEP TWO - Refining your object.


This is where things start to get interesting. The end goal here is to quickly crank something out that you can  take back into whatever application you need, for whatever use. The voroni fracture node will result in very procedural, boring cuts. However, with a little bit of effort you can get more refined results, and of course the more time you spend the better things will look. 


Nodes often give you outputs in the form of groups. In the case of the voroni fracture, it will output a group to be able to select the fracture!

 

The steps to refine the edges of the voroni fracture are as follow.

  1. Create a connectivity node,     this will give each of the polygon islands created by the voroni node an     id. This idea will then can be used by a "for loop" to iterate     through each piece! Once we are inside the for loop, we can instruct     houdini to take a series of steps.
  2. In short we will set up a     boolean of an inflated mesh to be able to subtract the bevel. The end     result is seen below.

Below you can see that houdini will treat all the little edges in one go. You could refine further and add vop attribute nodes to add even more detail. I chose to leave it as is, so I can refine it in zbrush at a later time. 


You can use a delete node to isolate your favorite pieces and deleting the rest. The selection wont be procedural, so changes to the anything above this node will break your group and you will need to reselect the meshes. There are ways to make this even more procedural, except I wont be covering that on this article. 

Step three : Export the output!


At this point we take a similar approach as before and set up a for loop. This for loop will move each of the polygon islands floating in space to the origin, so that you don’t have to! This is done through the usage of expression within the transform node.

 

The power of houdini really comes to light once you mix out of  the box nodes with simple expressions. These expressions are found in the help documents for each of the nodes. Houdini is extensively documented, my advise is to read the documentation slowly and also open their content files to study how things were done.

Conclusion:

The entire setup up to this point took about thirty minutes. Once I completed these steps, I could go in and continue to refine the shards inside of Houdini. However, at this point it was much faster for me to bring the shards into Zbrush to refine by hand. Not only that, making chippies on a Sunday evening is soothing and relaxing. :)

 

Scattering in Zbrush :

 

Once the presets were ready. I created a multi insert brush, which then became a nanomesh brush and used nanomesh to scatter the objects on the ground.

 

In short, nanomesh is zbrush's scattering system. There are lots of great tutorials out there that cover how to use it, but ill give you a brief description of what I did.

 

Here is a tutorial that covers its basic usage.


#AskZBrush: “How can I apply multiple NanoMeshes to the same poly?”

Select the polygon you want to scatter the object on, tweak your settings to your liking. You can then create layers and have multiple objects assigned to the same polygon.

 


Once you like what you have you can convert the nanmomesh into a 3d mesh. And edit further by hand. 

Thank you for reading! I hope this was useful to you, and that it opens a world of possibilities for your upcoming projects. The source files for this project are found over on my gumroad page. Please donate and support me so that I can be more encouraged to make more articles like this! Also feel free to send me feedback! 

Big thanks to my beautiful partner,  Yaza without her support i wouldn't have the mindset to do any of this on the side. She truly inspires me!! And to my friend Chad Briggs for proofreading my article! Without him it would just be a bunch of gibberish!