Houdini Voxels to the Rescue!

Diary of an Indie Game Developer: Chapter 62

Jason Tuttle
Nov 7 · 3 min read

This week, while working on a new asset for my game, I ran into a rather interesting problem.

The asset I’m working on is made up of lots of SubTools, with several Live Booleans, and when it came time to boolean everything into a single object, I started getting errors:

I went through all my SubTools and ran a MeshIntegrity check on each one. Turned out one of them was pretty messed up:

Clicking “Fix Mesh” under MeshIntegrity didn’t solve the problem, so I tried everything else I could think of to fix it. It’s a DynaMesh object, so first up, I tried re-DynaMeshing it. Then, I tried ZRemeshing it. Last but not least, I tried Decimating it. Nothing helped. Everything I tried produced corrupt meshes, and as a result, I couldn’t boolean everything together.

So… I brought it into Houdini and voxelized it!

Just in case anyone out there ever runs into a similar problem, and if you’re not familiar with Houdini’s voxels, I thought I’d share this simple solution:

In the screenshot above, you see a simple 3 node setup in Houdini. First up is “file1” which is a node that lets you import files. Next is “sop_voxelmesh1”, and last but not least is “rop_fbx1” which is a node that lets you export stuff out in FBX format.

“sop_voxelmesh1” is a Houdini VoxelMesh node, and that’s the one we’re interested in. It takes whatever you plug into it and generates a mesh with nice clean topology shrink wrapped to the silhouette of the source. The VoxelMesh node has a number of parameters that allow you to control how the mesh is generated, as well as its resolution. Here are a couple of short videos that provide a nice overview of how it works:

When I replaced my corrupt ZBrush mesh with the voxelized Houdini mesh, all the MeshIntegrity errors went away, and I was able to boolean all of my SubTools together, no problem. Sweet!

Now, I can get back to work on my asset.

See you next week…

P.S. As I said, I tried re-DynaMeshing, ZRemeshing, and Decimating my corrupt SubTool. Everything produced corrupt unfixable meshes. If anyone knows of anything else I should have tried in ZBrush to fix my mesh, please let me know in the comments below. While a quick trip to Houdini certainly solved the problem, it would have been nice to have been able to fix it in ZBrush. Thanks!

Jason Tuttle

Written by

Indie Game Developer. Formerly, Associate Environment Artist at Santa Monica Studio working on God of War. In a previous life, I was the IT guy at TED.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade