I was looking on the developer wiki, cause I was interested in implementing a material node for hair, that would help achieve some interesting cel-shade styles for hair.
In short, I wanted a way to have a node for hair where each strands normal is made entirely of the surface it’s sitting on. So if a strand of hair is emitted from a surface whose normal is the color blue. The entire strand of hair’s normal should be blue as well. This could help achieve effects like this.
(I created this image hacking some normal nodes together, it only looks nice from one angle)
I have next to no experience with blender development, but i took the first step and build blender, and have the files ready for tinkering. If anyone could let me know, or share stuff, to help adding material nodes let me know!
As i was looking on the wiki I noticed Particles & Hair was said as “end of life, to be replaced” I really wonder what systems, and also if the feature I wanted to implement would then be obsolete before long
I don’t think the rendering of strands will be affected by Particle Nodes… at any rate, anything that works in Cycles when the changes occur will be in need of porting, including anything you add now. I wouldn’t let it bother me.
I have a bit of experience with nodes. I don’t check on here that often these days because I’ve been really busy… but I might be able to help with that part . I’ve tried to make a similar shader and it’s remarkably difficult. I’m interested in NPR ways of rendering hair and grass and such… I might try making custom shaders in a game engine if I ever need to do that. It is possible to instance normal geometry and use the texture coordinates of the instancer. This should be possible for hair, too.
You might have an easier time making it a setting in the hair emission, to spawn hair particles with the right normals and not have to touch the shaders.
Thanks for the tidbits!
I think for the full NPR stuff to work, it’d work best as a shader option in the hair info node. So that you could mix and match it with other nodes for interesting effects.
Though as you said, it requires the hair material to get info from not it’s own geometry, the surface they’re emitted from, so maybe it’s not possible like that. No idea honestly.
Not really sure where best to start this thing, but thank you regardless
Well, hair already gets its UV’s from the root of the strand. I wouldn’t give up on it! It may even be possible to store two sets of normals, or get them in a shader. That’s where I would look.
I’ve managed to add an additional output on the node. But broken every part of the hair node in the process haha.
In the future the new
Hair data structure will replace hair particles. Adding this kind of information then also becomes easier, because that data structures supports generic attributes, and the normal at the surface could be stored as an attribute.
With the existing particle system it’s going to be a bit harder since as far as I know, that information is not preserved on particles right now, and always storing it regardless if it’s needed increases memory usage.
Is there an approximate date when the development starts? That new system would be really nice for a lot of my projects…
There is no date at this point.
Apologies for the extra topics. About the hair.
Though that new system does sound very interesting, i suppose it’d be a big hassle trying to implement this currently, so might just be best to put this off till the new hair system /: