QUICK REFERENCE #002: Face Normals Scatter In Houdini

Tutorial / 06 September 2020

This is my first week of really giving Houdini an actual go! I wanted to scatter along face normals (specifically THE face normal) and there didn't seem to be an 'out of the box' way to do this so here's a node that puts a point in the center of a face and carries the normal of the primitive over for all your face scattering needs:

A Primitive Wrangle SOP containing this code junk

Network in context, just slap that bad boy onto your scatter surface then pipe into a copy SOP


I wanted to scatter some stuff on the face normals of a sphere (akin to a scatter from Maya from MASH or spPaint, maybe my mistake of trying to make Houdini act like Maya). Ran into my first real problem that highlight some of the things I'm loving and hating about Houdini at the same time a few days in:

  1. 'Face normals' as they are in Maya don't actually exist in 3D (vertex normals do!) so where Maya fabricates a workaround, Houdini presents the issue as a fundamental problem for you to solve rather than pretending the problem doesn't exist
  2. There are at least 18 different ways of doing the exact same thing in Houdini
  3. If a node doesn't exist, you just have to assume the mantle of creating the node
  4. How the fuck do you find any of this out

Alot of the solutions I found for this either seemed obsolete or inelegant so in the end after many hours of not even knowing what to Google, I stumbled my way onto this super basic blob of code. Hope it helps?!?

QUICK REFERENCE #001: Displacement In Redshift

Tutorial / 16 February 2020

Just a quick reference guide for ZBrush > Redshift in Maya that I've been meaning to do for a really long time, for when you're panicking and forget how to even displacement properly. A fairly basic thing that I forget alot, hopefully this works straight out the box for you without too much thinking!

Sub-dividable plane with some goodness stamped on top in ZBrush at lowest and highest subdivisions, UV's already done on the low poly:


You can play with Adaptive On/Off and turning the DPSubPix level up or down as needed but this is probably a happy medium.

IMPORTANT: The ZBrush multi-map baker robot absolutely hates if you have UVs touching the edge of the 1-1 space! Make sure you have ample space between shells and the edge of your UV tiles!


Further explained below but again, these settings should be a decently performing catch-all. These settings will be on your lowest division mesh out of ZBrush.

Beautiful before and after:

Displaced geometry vs hi-poly out of ZBrush, great success!:

Wow cool!

Flicking between displacement mapped geometry with various Minimum Edge Length settings:

Notice the degradation of quality around on the raised star. Best to play with the Minimum Edge Length setting in order to get a better result depending on what you need. This has a decent effect on render times with the highest minimum edge length rendering a few seconds faster. The beauty of this is you can change the settings on a per-object basis.

On close ups there aren't really discernible differences between the minimum edge lengths thanks to the Screen Space Adaptive tick box, neato! However this will still require some fiddling for super high fidelity stuff.

Flicking between displacement mapped geometry with Enable Auto Bump Mapping on/off:

In some cases where large primary displacement is the only thing you have in your displacement map it might be an okay idea to turn Auto Bump Mapping off if you want to save a few seconds of render time. Otherwise leave this on as it will pick up the last bits of detail that the geometry displacement otherwise won't.

Hope this helps!


Redshift Documentation - https://docs.redshift3d.com/display/RSDOCS/Tessellation+And+Displacement 

Saul Espinosa's Redshift Displacement Tutorial - https://www.youtube.com/watch?v=mpyFn20FuJ0 

Vertex Library's Redshift Displacement Tutorial - https://www.youtube.com/watch?v=7PjlkhGyJM4 


Artstation / Instagram / Twitter / Twitch