Adding Fuzz to Your NURBS
The mtorFuzz RIB generator is provided primarily as an example for custom rib generators. Nonetheless it can create striking images of NURBS surfaces with added fuzz or stubble. mtorFuzz comes precompiled for use by artists and, for developers, in C++ source and .sli form.
The image above was created by attaching mtorFuzz to a strange shaped NURBS.
The image below-right is a dump of mtorFuzz's parameters. MTOR fuzz only puts fuzz on NURBS because the parameterization on NURBS is well defined. The basic idea is to choose fuzz density, randomness and coloring parameters. You can also use Artisan to paint a fuzz-mask and fuzz-length map to control location and length of the fuzz over your surface.
|
Fuzz Object - the name of the object to foliate. When blank, fuzz is created for the objects that the RIB generator is attached to. FuzzInU - the number of hairs in the u direction of your NURBS. FuzzInV - the number of hairs in the v direction of your NURBS. FuzzPlacementJitter - the amount to randomize the location of the hair within a hair cel. FuzzWidth - the width of each hair. FuzzLength - the length of each hair. FuzzLengthJitter - the randomness associated with the hair lengths. FuzzMaskVariable - the name of a scalar vertex variable attached to your surface (perhaps created with Artisan). Zero values indicate where fuzz is to be masked out. This is useful to reduce the size of the results passed back and forth via Mel. FuzzLengthVariable - the name of a scalar vertex variable attached to your surface (perhaps created with Artisan). Gray values are used to multiply hair lengths. FuzzDirectionJitter - the amount to randomize the hair direction. When set to 0, the fuzz direction represents the normal of your nurb at that point. FuzzJitterSeed - a seed value for the randomization parameters. Typically you'll want this constant over an animation for a particular surface. CastShadows - choose whether your fuzz casts shadows. OutputToFile - choose whether to transmit fuzz data via file or via Maya return values. For large datasets Maya return values is very inefficient, so you'll want to output the data to file. FileName - choose the file name for fuzz data. Only used if
you've enabled Output to File. To store a file under
the current project and name it according to the object
we're attached to, try something like: CleanupFile - causes fuzz files to be removed after use. Only meaningful when OutputToFile is enabled. LazyEvaluate - if a fuzz file exists, it will be used rather than regenerated. Only meaningful when OutputToFile is enabled. UseRATFuzz - attaches the ratFuzz surface shader to the fuzz. Use the parameters below to control the shader. FuzzKa - when using the RAT fuzz shader, this parameter multiplies the effect of ambient light. FuzzKd - when using the RAT fuzz shader, this parameter multiplies the effect of diffuse light. FuzzKs - when using the RAT fuzz shader, this parameter multiplies the effect of specular light. FuzzRoughness - controls the spread of the specular highlight. FuzzRootColor - the color at the root of the hairs. FuzzTipColor - the color at the tip of the hairs. FuzzSpecColor - the specular color of the fuzz. |
In the images below we used Maya Artisan
to paint a customer RenderMan vertex variable named fuzzLength.
The image on the left shows the contents of the fuzzLength
channel. In this example we used the same channel for our
fuzz mask and our fuzz lenght multiplier. The image on the
right is the result.
|
Pixar Animation Studios
|