Cheesy hair shine

I’m looking for advice on how to make my hair shine shader a bit better. I don’t want to simulate individual strands of hair or even tufts of hair - the characters are far too small on the screen to see details like that.

Right now what I am doing is using a plain old specular shader but then putting the output through a color ramp:

hair-shine

This doesn’t look terrible, and gives the rough impression of hair when seen at a distance, particularly when the camera is orbiting the character. However, what would be better I think is some sort of anisotropic reflection that would take into account the direction of the hair.

To be able to do that, I’d need some way to indicate hair direction in Blender - some parameter or attribute that would survive being exported to GLTF, possibly using vertex attributes.

Anyway, I’d be interested if anyone had suggestions on how to approach this problem. While there are zillions of tutorials for doing hair in Blender, they are all assuming that you want to simulate individual strands using particles, which is not what I want for this.

If your source models are in Blender, I’m curious if you get the result you want using anisotropy there (regardless of whether it exports to three.js correctly…)?

There is a proposed extension to glTF for anisotropy, which does include example shader code for implementation.

1 Like