Bump on Individual Hair Strands

Is there any way to apply bump to individual hairs? The closest I can get is by plugging a texture into the Offset (in the Principled Hair BSDF), although the effect is very, very subtle.

Can’t do realistic hair without bump…!




can you explain more what you want? also, can you post a photo of the node network (with and without the offset)?

This is the effect I’m after:

Nodes (changing the Bright/Contrast does little to enhance the effect):

Without offset would simply be the same thing with nothing plugged into the Offset.

try adding a math node set to multiply (turn clamp off).
like this:

Thanks for trying - unfortunately that has about the same effect as changing the Contrast value though.

I think the issue is that Offset doesn’t produce any of the HDR glints that a “true” bump does, which should appear as bokeh when using depth of field. I’m using a shallow DOF setting, and the reflective values just blend back into what appears as a relatively smooth hair.

have you tried displacement? it probably won’t work, but hey, nothing wrong with experimenting!

Yep, doesn’t work. :wink:

expected that

For that macro type shot, I would just model the hairs as geometry and give it a surface shader. The hair shader isn’t really meant for extreme macro closeup. It is a simplified model meant to be viewed from a moderate distance away.

Hair bump is still quite visible from a distance though, and modelling a full head of hair is out of the question… so I guess what’s needed is an unsimplified hair model. :wink:

1 Like

Yeah, maintaining that level of detail throughout is going to be very difficult. Do you need to view every square millimeter of this head at point blank range? Is this for a particul- er, you’re Chris Jones. I remember why I know that name, you do want to view every square millimeter at point blank range.

Well, good luck and godspeed. You’ve already done some amazing work so far. I bet you’ll come up with something!

Perhaps you could model just the eyelashes and use geonodes to distribute them? Eyelashes have a slightly different composition than longer hair, so it might be easier to mask the difference in shaders.

could you add in the reflections off of a principled bsdf to get the bump? a quick experiment got some results:


I tried mixing and adding shaders and ramping up the intensity to obscene levels, but it would always resolve back to smooth once the DOF was enabled. I’ve moved onto other things, but I’ll try your particular settings next time I’m tinkering with it (thanks :slight_smile: ).

Incidentally the effect is visible as a kind of grain that can be seen well back from point blank range, and is notably absent from less-convincing CG portraits.

1 Like

hey you could also post here https://blender.stackexchange.com/

Ok this looks to be having a much more discernible effect; I don’t think I tried this particular arrangement of nodes… in fact with the Geometry node at the front end, it appears as though hair can be textured much like ordinary geometry, which I didn’t realise was the case (or if I did, I forgot). Thanks @SterlingRoth!

@MichaelBenDavid Appreciate the thought, but no longer necessary. :wink:


so you will be doing the hair in geometry nodes then :thinking:?

No, different geometry node (there’s one in the Shader Editor).

1 Like

Well, it turns out none of these solutions are any good for animations unfortunately, because the texture doesn’t stick to the hairs (it appears to be using world coordinates). So I’m back to square one by the looks of it. :face_with_raised_eyebrow:

1 Like

You could try and use the object as a vector. Not sure how it would handle deforming geo though.

Sortof works with translates.


Thanks @dan2 - yeah it needs to deform, so that won’t suffice either I’m afraid.

Meanwhile the Parametric socket on the Geometry node sort of works with deformations (but not always), and it stretches it a lot and seems to be tiling it.