Guitar String Texture

I’m working on a guitar model (an HD version of Clementine from Brutal Legend.)

I want to make the four top strings on the guitar wound strings, and I have an effect that works… sort of. I looked on the forum, and it seems I’m not the first to have this problem, but their solutions don’t work for my project.

You can see that shallow camera angles distort the effect. It also fails on curved strings.

Here’s the material

I know the camera node is causing the problems with the perspective, but even if I use the Object node, the curved strings still have the same problem.

I want the lines to follow the curve of the string, like this:

If anyone can help me, I’d be very grateful.

Camera coords? I’d use curves and simply twist up the coordinates a little:

2 Likes

Hope this helps, mash from curve, set seam, unwrap, follow active quads then apply material.
StringWindingOnly.blend (1.0 MB)

1 Like

@CarlG
@colkai

Wow, thank you both so much. Both of those methods look perfect. I’m still new, and I guess I need to get more practice with curves. I found them to be fiddly, so I ended up using the spin tool. lol

I’ve tried this solution and it works great as long as the curve or parts of the curve aren’t stretched. If you stretch a section of the curve, it stretches the material too. Any solution for that? Thank you.

so far have only found this solution on StackExchange:

The curve has same amount of edge loops between control points in the U direction of the curve (the setting you can set in the shape panel). UV space maps linearly to this, and changing this functionality would be hard if not impossible. Usually it’s the desired functionality, preventing the textures sliding around if the curve is animated among other things.

You can however work around it by using two curves, one of which is just a straight line and holds the materials, textures, and resolution and bevel settings used for rendering. This curve then uses a curve modifier to copy the shape from another curve, which is used for just defining the shape of the final object. That way the rendered curve has uniform distribution of edge loops.

1 Like