How to apply image texture to hair strands

I made this tassel with the new hair system and it looks good so far but for an added touch of realism I wanted to apply a PBR rope material to each strand. This is the reference I’m trying to match

This is what I have so far

I can only apply colors to the hair. I can’t actually apply an image texture! If I try plugging in the rope texture to the principled shader, it just comes out like a flat color. Presumably because the hair isn’t UV unwrapped?

Is there a way to apply an image texture? Alternatively I could convert this to a curve and then convert that to a mesh but my computer can’t handle this much geometry and crashes when I try to convert it from a curve to a mesh. Considering I plan on having a bunch of these tassels in the model this isn’t feasible.

From what I know, you need to convert it to a Mesh in order to apply an Image Texture to it. If you say that Blender crashes when you’re trying to convert it to a Mesh, try to reduce hairs count, if it’s possible.

What version of blender are you using?
I found this for example.
https://blender.stackexchange.com/questions/290558/blender-3-5-hair-system-uv-map

Not sure what I’m doing wrong. I tried out the method in your link but I get the same result even if I delete the attribute node entirely

I might not have seen this post… In the future reply to the poster rather than the thread so that they get a notification.

Not sure, I think your missing a “s” at the end of “coordinate”

I was missing an S but adding it doesn’t make any difference unfortunately

No, I was wrong, the post that that post links to has a screenshot of his material nodes and it’s …“coordinate”. You still haven’t said what version your using. I am running 3.3.1 and have yet to upgrade.

EDIT: Also are you trying to apply the texture to the length of the hair or change the colors of the entire length. It looks like ( after re-reading your post) that you want to have the texture over the length, to make it look like rope.

I’m using 3.6.0. I tried coordinate and coordinates

OK, I got it to work in 3.3.1 by making sure that the object was unwrapped before I added the hair. Although, this will take an image and change the entire length of the hair to a color that corresponds to the image. I think what you want to is to map along the hair and I am guessing that there is a way to get geometry nodes to get this information. I have no idea how to do that though.

I did investigate using the Curve Info Node in the Shader Editor (the Intercept output) into the Vector input of the Image Texture Node, this seems to map along the length but I don’t think its quite right. I hope this helps.

You could also try setting the image to box mapping and using object cords.

@a59303 in my cast it almost works but I need to figure otu how to rotate it 90 degrees. I tried a vector rotate node but that didn’t work

@DNorman I can’t believe I didn’t think of this. Yes that makes things easier in my case. The only issue is the texture is a little blurry even if I set blend all the way down.

For anyone in the future this is what worked best for me. Set the UV to object but use the flat fexture

1 Like

I think the Mapping Node may help you rotate it.