Unity 6 - Hair shading - Self shadows and normals

Hi everyone!

I’ve been learning to do hair shading and I’ve noticed that my hair cards don’t cast raytraced shadows on itself. However they do cast proper shadows on other meshes. I’ve looked a bit around but I didn’t found any answers yet.


As you can see the shadows on the hair look blocky and not good looking.

I’d like to know if this is a limitation of the hair shader in Unity or if I missed a setting somewhere to enable that.

I also noticed that my normal map wasn’t doing anything visually on my cards but when I check the rendering debugger I see my normals correclty. Is there something that needs to be done to get the normals visible?

Here is my very simple shader graph and graph settings:

Thanks for the help

My guess is that it is a limitation to fake the light scattering in the hairs. But if there’s a way to improve the quality of this it would be really great. Because I’m quite confuse that the shadows are better with the shader being set to Approximate quality

Like when I switch the shader quality to Physical I was expecting higher fidelity. Switching the shader to Approximate seems to give better results in self shadowing.

As seen above switching to an Approximate quality (and adapting the shader slightly) gives better results shadow wise and the normals works perfectly. However the light transmission and highlights are off and doesn’t give as good results as in Physical.

Still I find it strange that the Physical quality is actually worse looking shadow wise.

Small update, actually I found out that the approximate quality also doesn’t do raytraced self shadowing. Does anyone knows why it is the case?