15
$\begingroup$

It is common knowledge that hair simulation and rendering is particularly challenging and in fact rare are the examples in games that propose believable hairs. It is pretty easy to imagine how hard it is to actually simulate the high amount of fibres and to simulate the various scattering events that may happen between so many strands, let alone the fact that each of them is translucent.

Can someone formalize what are the main challenges in hair rendering, especially for real time scenarios? How these are overcome by state-of-art techniques? Are there some de-facto standard theoretical models used?

To clarify, for real time I don't necessarily mean in a game context.

$\endgroup$
7
$\begingroup$

Sorry for the bad quality of my answer. I do not have access to a computer currently and editing from my phone is not a straightforward task. In particular I would love to be able to paste images.

I would say that the main challenges of simulating hair are:

  • replicating their very specific reaction to lighting (as a material)
  • replicating their volumetric property (as a geometry)
  • animating them in a realistic manner

Here is a list of references I gathered on the subject, ordered chronologically (mainly about the rendering part):

  1. JAMES T. KAJIYA, TIMOTHY L. KAY, Rendering Fur With Three Dimensional Textures, 1989
  2. JEROME LENGYEL, EMIL PRAUN, ADAM FINKELSTEIN, HUGUES HOPPE, Real-Time Fur over Arbitrary Surfaces, 2000
  3. STEPHEN R. MARSCHNER, HENRIK WANN JENSEN, MIKE CAMMARANO, Light Scattering from Human Hair Fibers, 2003
  4. ARMIN BRUDERLIN, SUNIL HADAP, TAE-YONG KIM, NADIA MAGNENAT-THALMANN , ULRICH NEUMANN, YIZHOU YU, STEVE WORLEY, Photorealistic Hair Modeling, Animation, and Rendering, Siggraph 2003 Course
  5. THORSTEN SCHEUERMANN, Hair Rendering and Shading, ShaderX3, 2004
  6. THORSTEN SCHEUERMANN, Hair Rendering and Shading, ATI / GDC 2004
  7. THORSTEN SCHEUERMANN, Practical Real-Time Hair Rendering and Shading, ATI / Siggraph 2004
  8. THORSTEN SCHEUERMANN, Practical Real-Time Hair Rendering and Shading, ATI / Siggraph 2004 (slides)
  9. MARTIN KOSTER, JORG HABER, HANS-PETER SEIDEL, Real-Time Rendering of Human Hair using Programmable Graphics Hardware, 2004
  10. HUBERT NGUYEN, WILLIAM DONNELLY, Hair Animation and Rendering in the Nalu Demo, GPU Gems 2 (Chapter 23), 2005
  11. LENA PETROVIC, MARK HENNE, JOHN ANDERSON, Volumetric Methods for Simulation and Rendering of Hair, Pixar 2006
  12. CHRISTOPHE HERY, RAVI RAMAMOORTHI, Importance Sampling of Reflections from Hair Fibers, Pixar 2007
  13. SARAH TARIQ, LOUIS BAVOIL, Real-Time Hair Rendering on the GPU, Siggraph 2008.
  14. ARNO ZINKE, CEM YUKSEL, ANDREAS WEBER, JOHN KEYSER, Dual Scattering Approximation for Fast Multiple Scattering in Hair, Siggraph 2008
  15. IMAN SADEGHI, HEATHER PRITCHETT, HENRIK WANN JENSEN, RASMUS TAMSTORF, An Artist Friendly Hair Shading System, 2010
  16. EUGENE D’EON, GUILLAUME FRANCOIS, MARTIN HILL, JOE LETTERI, JEAN-MARIE AUBRY, An Energy-Conserving Hair Reflectance Model, 2011
  17. XUAN YU, JASON C. YANG, JUSTIN HENSLEY, TAKAHIRO HARADA, JINGYI YU, A Framework for Rendering Complex Scattering Effects on Hair, 2012
  18. JIAWEI OU, FENG XIE, PARASHAR KRISHNAMACHARI, FABIO PELLACINI, ISHair: Importance Sampling for Hair Scattering, 2012
  19. SARAH INVERNIZZI, On Physically Based Hair Rendering, 2013
  20. WOLFGANG ENGEL, Hair Rendering in Tomb Raider, 2013
  21. EUGENE D’EON, STEVE MARSCHNER, JOHANNES HANIKA, Importance Sampling for Physically-Based Hair Fiber Models, 2013
  22. TIMOTHY MARTIN, WOLFGANG ENGEL, NICOLAS THIBIEROZ, JASON YANG, AND JASON LACROIX, TressFX: Advanced Real-Time Hair Rendering, GPU Pro 5, 2015
  23. LEONID PEKELIS, CHRISTOPHE HERY, RYUSUKE VILLEMIN, JUNYI LING, A Data-Driven Light Scattering Model for Hair, Pixar 2015

I did not read all of these material yet, but here is a little of what I remember (I am more interested by the real-time solutions) :

  • Kajiya-kay laid the basis for realistic hair / fur rendering
  • Marschner proposed an improved model, and noted that hair has two distinct specular highlights (one white due to direct reflection, the other colored and sparkling due to reflection inside of the hair fiber)
  • Scheuermann proposed approximations to simulate the behaviour described by Marschner, approximations suited for real-time (using tricks such as two separate specular highlights, artist-designed specular offset and exponent, noise textures). He also proposed using three rendering passes (opaque, transparent back and front) of polygons to simulate the "volumetric" qualities of hair
  • Most of the games I heard of seem to use Scheuermann approaches for hair shading. However, this is not an energy-conserving solution. Nevertheless, I think d'Eon attempts to fix this problem in the 2011 paper.
    An other topic of interest is the use of tessellation, that has also been used recently to replace the polygonal approach and simulate hair strands individually.

The offline rendering world attempts to solve more advanced challenges. I think most of them are described in the references above.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.