grooming time!Posted in Production by andy
Over the past couple of days I’ve been working on the fur grooming of our main characters (Furry & Funny, remember?). Even though it’s still an ongoing work in progress, we would like to share some of our progress and workflows with you!
The first character I managed to finish was the chinchilla (lovingly nicknamed Gamera). Especially due to the numerous improvements in particle generation, editing and rendering the results are surprisingly good. Now we’re able to brush our characters in real time and render 2 million hairs in HD resolution in about one minute. Thanks to Jahka and Brecht, our fearless developers!
In the first step a particle system is created on the character mesh, it’s important to get an optimal distribution as a basis for the parent particles. However, sometimes the results are not perfect, so a lot of times I have to add particles manually.
This is done in the next step where the particle system is set editable (aka. ‘baked’), so each individual particle can be modified by hand, either using the particle edit brushes (add, comb, puff, smooth, cut, etc.) or pulling them around one by one. This is also where the overall growth direction of the fur is defined. Another important factor taken into consideration is how the rig deforms the character.
At this point I also start drawing the full body textures to get a better idea of the final look. There are multiple layers of textures: One for the root color, which is also the ‘skin’ color of the underlying mesh and another one to color the tips. There are also bump and specular maps for the skin layer, some proceduals to control various directional aspects and a grey scale map to control the overall transparency.
For each editable (parent) particle, a set of child particles is created, usually ranging from 10 in the 3D viewport to 1000 in the final render. The child particles interpolate between the parents, but they can also have further attributes like braids, random length, frizziness, clumping, etc.
I found it to be easier to have the tail fur in a seperate particle system to get a better control over the distribution. Also whiskers and extra layers of fur are added after the base is finished.
Of course at any point of the process I have to check with sacha (director) and enrico (master of colors) if the characters are true to the original designs, and how to make them better and more appealing.
Right now i’m close to finalizing rinky, the wacky squirrel which is slightly more challenging: He has a longer, bushy tail, long pointy sideburns and more scruffy fur!
For the final rendering we also depend on some further additions like level of detail rendering, as for now all the hair strands have a fixed size. Also for better lighting we need deep shadow maps and a slightly more physically accurate light falloff (area lights).
One big question mark at the moment is, how often we can run dynamic simulations on the fur. we have very fast, snappy animations, will the fur look too rubbery or too stiff? How much time can we spend on refining that? How to deal with intersections? Also, in an ideal world you would want the animators to be able to control the fur, is that feasible for us?
Some more food for the stat junkies: Rinky currently has 1.4 million hair strands (800 children hairs per parent particle), Gamera around 1.5 million (400 childs per parent for the body and 1000 for the tail). Child particles are generated per tile at rendering time, so memory consumption is very low. Furthermore, all textures are created in png format, currently at a resolution of 4096 pixels.
As a final goody, here is one of my rendering tests with Gamera in motion. (1st one is only the parent particles, 2nd one is the final render)
Anyways, back into the trenches… Stay tuned!