Hair node, root based normal proposal

This is a follow-up to my RCS post here
I’ve been interested in exploring toon-based shading and lighting with EEVEE. And I Discovered an amazing effect with hair particles and the standard toon-shader,
(A standard toonshader in EEVEE. Is using the shader-to-RGB node, and then having a coloramp making the shadows much crisper, akin to the look of Nintendo’s Wind Waker game).

Alas I found a big limitation blender currently has. In short

Currently there’s no way to get normal data for hair particles, that each face outwards in the direction the hair is pointing. They have the normal data of their 3d geometry, that’s of course immensely useful for realistic rendering. But for toon-shading, it’s very limiting not having a second option.

The proposal
An addition to hair node, called “root normals” or something more fitting, where the each strands normal is exactly the same as the normal of the surface it’s sitting on. Would look similar to this

This is what hair particles normals look like “normally” notice each strand has multiple colors

With all that, i’d greatly appreciate any insight into how i could try to implement this as an addon or similar. I’m admittedly not experienced with coding for Blender specifically, but if it’s possible i’d want to. Since i really wanna utilize this effect for future animations

1 Like

the top right “nice” example image was achieved by plugging a “normal” node into the shaders normal input, but it only receives lighting from 1 direction, and also isn’t accurate to the geometry I recently bumped into the same issue, and since I already did an Eevee hair shader, it was easier for me to implement this

1 Like