Tips for Rendering Hair

 
 
 

While rendering hair is similar to rendering anything else in Softimage, there are a few things to keep in mind. Like all things rendered, you want to achieve the best look possible for the least amount of rendering time.

To make working on hair go faster, you can often use many "expensive" parameters with low values while you're working, but then set the values higher when you're ready to test out the rendering.

Here are some general tips, but all suggestions are relative to the look you're creating for your hair or fur.

Number of Hairs versus Coverage

  • The overall number of hairs has a big impact on the render time. Depending on the look you need to achieve, try to reduce the overall number of hairs as much as you can and instead increase the root and/or tip thickness (see Setting the Render Hair Thickness). Using a slight kink or frizz can also help in giving the illusion of more hair.

  • However, while using thicker hair and fewer of them renders more quickly, for a final render you'll probably want to reduce the hair thickness and increase the number of hairs (Total Hairs value — see Connecting Maps to Render Hair Parameters). Very thick hair strands can penetrate each other and cause flickering.

  • Depending on the look you want, you can use the Strand Multiplier to increase the number of render hairs for good coverage (see Increasing the Number of Render Hairs). Splay at Root covers well and gives a slight clumping effect, if that's the look you're trying to achieve. However, it's generally better to increase the number of render hairs instead of using larger values for the Strand Multiplier, which can slow down the rendering time.

  • For animals or complex hair, use more hair objects (that is, apply hair separately to several clusters) instead of using one hair object for the whole animal or head. Having several hair objects makes it faster to style, test, and render because you're always working in smaller pieces, which allows you more flexibility.

  • Comb the hairs by a small amount in one direction. If hairs lie on top of each other, you don't need as many hairs to cover up any bald spots.

  • Use weight maps to control exactly where hair appears on your character. For example, you can create a density map (see Removing Render Hairs (Density)) so that there are more hairs only where you need them, such as for doing close-ups on an animal's head. Density maps prevent hair from being generated where the value is 0, and if a hair isn't generated, it isn't rendered.

  • Use as low a number of hair segments as is visually acceptable for the final render. You may find that higher values (such as 20 or more) are needed when the hair style is very long, frizzy, or curly. Short hair/fur can go as low as 8 (or less) for the final render.

    However, the price for precision is rendering time, as high segment values can slow down a scene. Use lower values of 2 or 5 for quick previewing and interaction while you're styling the hair. See Setting the Render Hair Resolution (Segments) for more information.

Hair Color and Texture

  • Making the root color darker than the tip helps to give more depth and realism to the hair strands. This is generally used to create or enhance a shadow effect on hair.

  • Generally, the specular color value (not its decay) should be very high for dark hair and very low for light hair. Of course, this depends on the specific effect you're trying to achieve.

  • You can use two different shaders for hair:

    • One is a surface shader on the hair emitter object (such as a scalp) that simulates the hair color and texture at a distance. This lets you use fewer real hairs but still have a full look. Having the underlying skin of the object textured with an image that looks like hair can help tremendously because you can use a lot less hair and still have the same visual complexity.

    • The other is the real hair shader that defines the render hairs' look.

    Mixing different proportions of these two shaders in the right shot can give you the required look of hair without rendering time being unreasonable.

Creating White or Light-Colored Hair

Realistic white fur or hair can be fairly difficult to achieve, so here are some things to consider:

  • White hair is not white: it's chromatic gray. There are lots of tints of "off white" in white, but if you have the color turned to pure white (1), you won't have much variation. You can use the Color Variation option in the Hair Shading shader to achieve subtle color changes

  • You don't want to fill up the whole color spectrum range with the base color — you need to allow a little room for the specular color (which is additive). The white should be brighter than anything else in the frame, so make sure your subject and background don't compete.

  • White hair is self-illuminating in that light bounces all over the place inside. There is very little diffuse range, which means that the hair's shading is mostly the base color — anything else comes from shadows.

    You can set the Use Blend Gradient parameter (see Setting the Hair's Diffuse and Ambient Colors) in the Hair Gradient Material shader so that it's mostly Ambient (about 85%) to diminish the effect of the diffuse shading. In other words, the shaded hair (pre-shadow) is just the base hair color with no dark-to-light variation.

    The rest of the shading comes from the shadows and specular value. It's not ambient in the traditional sense because the setting doesn't affect the shadow density.

  • Use lots of hair strands (Total Hairs value — see Connecting Maps to Render Hair Parameters) that are very transparent. This allows lots of light to pass through the volume, giving a nice fluffy appearance (if you're trying to create fluffy fur).

  • Try applying multiple instances of hair to the same object, each with different density settings (if it's fur): one that's long and loose (low stiffness, higher frizz), and one that's short, dense, and stiff.

Transparency

  • For a more realistic hair look (especially for white or light-colored hair), use lots of hair strands with a fairly high transparency value. This also decreases shadowing because it allows light to pass through the hair volume. Having a very low transparency value for the roots can make the hairs opaque and look like hair plugs.

    However, to save time while previewing, deactivate the transparency in the hair shader.

Lights and Shadows

  • Use as few lights as possible for the hair, such as one shadow-casting light and up to three other lights in the scene.

  • Motion blur can increase render times by a large amount, so you should consider adding it as a post process.

  • Shadows also have a high rendering price, but not as much as motion blur. If possible, don't use self-shadowing.

    You can often decrease render times as well as improve the quality of shadows by using shadow maps (see Shadow-mapped Shadows). You can also use volumic shadow maps to accurately render transparent or colored shadows (see Shadow-mapped Shadows).

  • Make sure you're rendering with shadows on for the final render. Set the light's Umbra values to over 0.2 to give the best results.

Raytracing and Antialiasing

  • Have raytracing selected as the rendering method when you are rendering hair with regular shadows. If you're using shadow maps, you can use the scan line method which is faster than raytracing.

    For more information, see Choosing a Rendering Algorithm [Rendering]. As well, see Controlling Aliasing [Rendering].

  • Use antialiasing for reducing any jagged edges on the hair. Start with settings of Min -1/Max 1 and progressively reduce the threshold until you reach an acceptable quality. Settings of 0/2 often give good results.

  • Using a filter helps to avoid excessively sampling the hair while still getting a good quality image. Try using the Mitchell filter with a 4/4 size for a good speed while retaining much of the image's sharpness.

    Since the hairs are usually less than a pixel in diameter, the probability of a ray hitting a hair increases when you bump up the minimum aliasing level.

  • Also you might want to set your sampling threshold to something like RGBA = 0.06. Increasing the number of samples per pixel will give you different results since, statistically, more hairs should get hit by sampling rays.

  • For a good render, hair requires a higher sampling level than most geometry. While there is no sampling setting just for hair, you could render the hair in a separate pass so that the other objects in the scene can use lower sampling levels.

  • Spend a good amount of time tweaking the hair BSP settings (see Setting the BSP Tree for Hair) to speed up rendering. Draw small render regions on the hair as you go so that previews are fast.