This is a problem that has been haunting me for years and has forced me to render my hairy characters in the Cinema 4D standard render engine without GI.
But I have finally found out why it appears and how to fix it.
Let me describe the problem for you
It happens when using Cinema 4D Hair with standard renderer on objects that have quad or ngon polygons (non-triangles), for example on characters that should obviously have quads all over for a good polyflow.
In the Hair Material Color you have activated the “take shadows/illumination/color from surface” to get a nice and smooth Hair coloring with GI and the physical sky system.
But all of a sudden the hair starts to get black dark shadows in a checkerboard-like fashion that losely follow the mesh structure, meaning some hair strands render great but some are very dark almost black at the roots.
Why does this happen?
In the Standard renderer, Cinema 4D Hair shades per segment and interpolates from the root of a segment to the tip of a segment.
Now, it appears, the bottom-most root segment starts out black because it is actually not perfectly on the surface of the character mesh. But unfortunately this is where C4D takes the root segments’ shading from, the surface!
But since the Hair is not on or above the surface but beneath it, the ray that is shot towards the supposed surface (to get the shading informatoin for the hair) now shoots through the body of the character and hits the other side of the character.
But this polygon of course is black, since its surface is inside the body and not being illuminated as an outside polygon surface would be.
How is this possible?
So I asked myself, how can this happen, why is the Hair not on the surface of the Quad polygon? Because Quad polygons that are not perfectly flat are actually two triangle polygons that have a curvature to form the quad polygon.
So far so good, but the Hair unfortunately does not stick to the surface of the underlying trianlge polygons but interpolates from the 4 vertex-points of the quad polygon across the quad-polygon, making some hair go beneath the surface of the quad polygon.
Again, this happens only if you have quads that are not entirely flat and have a slight convex curvature.
This is somewhat complicated so lets move on to the interesting part!
How to fix this
- Either get rid of your quads, but this really is a bad solution for rigged meshes
- Go into the Hair object and in the Hair tab there is a subtab called root that has an offset option, that pushes the Hair slightly outward. Increase this to something like 0.2 or so or test it with higher values if it is not enough.
Bam! Your Hair gets shaded correctly. You might have to increase your Hypernurb subdivision on your mesh, if you have to increase the Hair offset too much to make the Quads as flat as possible.
Have you ever encountered this Bug or other Cinema 4D Hair related anomalies? Share in the Comments!