






.jpeg)
Pinocchio
One of Us, 2019
Woodpeckers
Groom, CFX, Lighting
I had 20 days to develop a feather groom system, followed by a few weeks to tweak the look of the feathers between other tasks. The result: the ability to have several birds in the scene rendering full grooms (no texture cards), complete with AOVs enabling control of multiple elements in the groom.
​
​
Being told I had just a month to groom a bird took me by surprise; I subsequently spoke to my previous groom lead, who advised 3 months for such a feat. So, how could this be done in such little time?
In short: Python, Vex, Arnold, Houdini.
(The fantastic four!)
​
Method
-
Create multiple shapes/sizes of the required feathers: Remix, rectrix, covert, contour, bristles, filoplumes, semiplumes. These contain all attributes, which can also be passed into the aovs.
-
Using python, create a directory structure to cache the feathers into, which makes it easy to grab the feathers in whichever required size in the groom.
-
E.g. Feathers/<featherType>/<sizeVariant>/<dataType:ass|bgeo.sc>/<fileCache>
-
In the scene, they're viewed as bgeo instances, and the amazing Arnold's .ass format is used for the final render.
-
Groom guides as normal (only 2 points/prim are needed) and paint masks such as 'mask_contour', 'mask_semiplume'.
-
In vex, use the mask to set the chance of a hair being of that feather type. I also used the feather hair's perimeter to create a 'bias', so the sizeVariant could be allocated correctly. E.g. If prim01 has a perimeter of 0.1 and prim02 has a perimeter of 10, and they're both feather type 'contour', their sizes are fit into a 0-1 bias. This bias is used in a python wrangle to select either feather size var A, B, C.
-
Create orients using the skin's normal, the vector from vtx0-vtx1 of each prim hair, and the cross product of these.
-
After wrangling, you're left with root hair points with an orient, instancefile and pscale, which are all you need to render the feathers with Arnold.
​
- x -
​
Sources I referred to:
-
Featherbase for feather reference: https://www.featherbase.info/en/species/
-
Matt Estela's website to learn about maketransform and orients: http://www.tokeru.com/cgwiki/index.php?title=JoyOfVex17
-
SolidAngle Arnold docs
-
SideFX Houdini docs
-
Odforce and SideFX forums (Special thanks to users of the names Atom, Matt, Thomask)
​
​
​
​
​
​
​
​
​
Donkey
Groom, CFX
With similarly a short amount of time, the donkey groom was featured in a mid-range underwater shot and a far-range shot. I simulated the tail and mane, and was able to easily have a stable CFX cache for the 1000+ frame shot thanks to Houdini's Vellum. For the rope, I generated it procedurally along the simulated curve by reusing a hda I'd made in the past, which I frequently use in grooms when creating string.
​
​

-x-