This is a follow-up to my RCS post here https://blender.community/c/rightclickselect/tkhbbc/
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
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
btw.
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
Though, it still isn’t actually enough to achieve the effect that was desired.
That addition grants the ability to tangent relative to the direction of the hair strand.
But for the stylish pictures above, it would need to have tangent relative to the origin point the hairs are sitting on (I might be using the wrong words, tangent and normals isn’t my strong suit)
This is the closest i could get in the 2.93.0 beta
I tried making a drawing to demonstrate what i’d want.
With the bottom example I could achieve the affect i described above i think!! It would help with that Cell-shaded look that’s become popular in recent times
The triangles are hair strands sitting on a surface
I haven’t tried implementing stuff in Blender before actually. If i did tweaks to your thing for these purposes. How would i run it, and after that get it implemented?
After a long time, i’m still no closer unfortunately
But, i have found the propper words.
In order to create that cool toony effect, each strand would need to get it’s normal data from the surface they’re sitting on. You can do that currently by using a data-transfer modifier from one mesh to another, but the problem is, that, that isn’t possible with hair particles. Closest you can get is converting all hair particles into it’s own unique mess, but doing that would be horribly innefecient to animate and run.