Lets talk fur - Kajiya Kay

I've spend (or wasted) half a decade on projects involving some sort of furry/feathered creatures. Happy Feet, Where The Wild Things Are, Legend of the Guardians and Happy Feet 2. So, fur shading is going to be my first subject. I will start with a simple Kajiya Kay implementation in 3Delight. Safe to say that majority of hair shaders are using this model. From real-time hair shaders on GPUs to every project I've worked on. It's fast and relatively easy to understand.

Kajiya Kay model is actually from 1989! There are a lot of improved modifications since and diffuse component is probably the first part you'd like to address. Using purely curve tangent for diffuse shading doesn't look all that natural so without going into much details, check out how Sony ImageWorks made things happen on Stuart Little: http://www.renderman.org/RMR/Publications/infbeyond.pdf

In a nutshell, it mixes the surface normal vector at the base of the hair with the tangent vector at the current point on the hair. Amount of mix is based on the angle between the tangent vector at the current point on the hair, and the surface normal vector at the base of the hair. Now say it very quickly.

Before I'm going to get Marschner model working I will provide a shader with implemented 'Stuart Little' trick and a working RIB. Additionally I'd like to show how to simulate Marschner's refractive properties with Kajiya Kay model. Easy!