LuxCoreRender Hair and Fur

From LuxCoreRender Wiki
Revision as of 18:34, 7 December 2017 by Piita (talk | contribs) (Created page with "LuxCoreRender 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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

LuxCoreRender 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 LuxCoreRender 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.


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.