Hair and Fur - LuxRender Wiki
Luxrender GPL Physically Based Renderer

Hair and Fur

Personal tools

From LuxRender Wiki

Jump to: navigation, search

LuxRender includes a strand primitive to allow for efficient rendering of large collections of thin strands, such as hair, fur, grass, etc. It loads sets of curves in the cemyuskel hair format and tessellates them at load time. Since the strands produce actual geometry, they can use normal materials and support all lighting effects, including reflections, refractions, shadows, and global illumination, including from each other (for example, self-shadowing)


In a typical workflow, a hair system within the 3D package will be used to generate a collection of strand-curves representing each hair. The LuxRender exporter will create the necessary hair file and shape definition. Note that this hair file is in binary format, and there is only a single shape definition exported, so the time to export this data should be minimal.

Contents

Settings

Tessellation options

The strand primitive includes several different methods for tessellating the hairs into the final shape, as follows:

Ribbon

This mode renders the strands as simple ribbons made of triangles. The primitive includes data of the camera position, allowing all ribbons to face towards the camera. This mode can be memory intensive. In most cases, the adaptive-ribbon mode should be used instead. It will give similar results with a fraction of the memory use.

Adaptive Ribbon

This mode builds the strands as curves, then tessellates them into ribbons of triangles. Like the simple ribbon mode, it includes data on the position of the camera and will use that to ensure all ribbons face the camera. In addition, this mode will automatically adjust the polygon count of each ribbon to keep avoid building unnecessary geometry.

This mode is recommended for large numbers of very fine strands, such as hair, fur, or grass.

Options

  • Max depth
    • Maximum tesselation depth for strands
  • Max error
    • Maxiumum error tolerance during tesselation. Smaller values use more memory, but can prevent patchy or broken hair.

Solid

Solid builds the hairs into mesh cylinders. This mode is very realistic, but also very memory intensive. In most cases, the adaptive solid mode should give similar results with a fraction of the memory useage.

Options

  • Side count
    • Number of sides of each cylinder. Higher values are smoother, but use more memory.
  • Cap bottom
    • Enables or disables caps on the roots of the strands
  • Cap top
    • Enables or disables caps on the tips of the strands

Adaptive Solid

Adaptive solid builds hairs into cylinders and adaptively tessellates them base on camera position. This mode works well for small numbers of thick hairs, such as porcupine quills.

Options

  • Side count
    • Number of sides of each cylinder. Higher values are smoother, but use more memory.
  • Cap bottom
    • Enables or disables caps on the roots of the strands
  • Cap top
    • Enables or disables caps on the tips of the strands
  • Max depth
    • Maximum tesselation depth for strands
  • Max error
    • Maxiumum error tolerance during tesselation. Smaller values use more memory, but can prevent patchy or broken hair.

Examples

Fur strands are emitted from a plane that is using an image map as diffuse texture. The fur gets the same color as the image map
Fur strands on the hat piece get the color from an image map and the furs on the tail piece get the color from a procedural texture