Realistic hair / fur material (strands)

Hi everyone,

I am trying to make some realistic hair in threejs using strands.
Currently I am loading some json with all the strands (each strand is a (x,y,z) array) and build a tube with some radius (around 0.1mm):


const pointsArray = curves[i];

const points = pointsArray.map(p => new THREE.Vector3(p[0], p[1], p[2]));

const curve = new THREE.CatmullRomCurve3(points);

const geometry = new THREE.TubeGeometry(curve, points.length, radius, 4, false);

          geometry.computeVertexNormals();

          geometry.normalizeNormals();

geometry.attributes.normal.needsUpdate = true;

geometry.normalsNeedUpdate = true;

then I load these into a batched mesh for performances

batchedMesh.addGeometry(geometry);

everything works nicely but now I need to add a good material….
I have not been able to achieve anything good with the MeshPhysicalMaterial , the threejs.GPT gave me some hints but nothing nice…

So the question: what are you experts using for hyper-realistic hair? I don’t want to build a cartoon but a realistic head. I know that we have Blender, Unity, unreal, etc but i think that threejs can do it!!

I am attaching a couple of my “best” results (not so best…)
Thanks!
Luigi

3 Likes