Is there a way to fake a large number of turns of windings? Example: the strings of a guitar, if you gotta model the winding details, how do you fake the windings, so as to reduce the vertices?(because creating them with an array and a curve modifier boosted them up to a 70K vertex count) I've tried bump mapping and normal mapping but, they don't seem to work well.

Looking to create an effect similar to this :

guitar string reference image

  • 2
    $\begingroup$ Bump map or normal map would be the way to go. You should figure out why it isn't working well. $\endgroup$
    – cmomoney
    Commented Feb 10, 2017 at 15:23
  • 1
    $\begingroup$ Instancing is another option. See blender.stackexchange.com/questions/510/… $\endgroup$
    – iKlsR
    Commented Feb 10, 2017 at 15:24

1 Answer 1


Assuming Cycles, how about something like this :

rendered image

This is simply a cylinder with a procedural texture based on a Wave Texture and a Radial Gradient Texture.


The Object coordinate is split into it's X,Y,Z coordinates and just the Z is used to feed into the Wave Texture X coordinate. Without any offset this would simply result in rings along the length of the mesh. Adjust the Scale of the Wave Texture to get the desired pitch. Adding in the output of the Radial texture skews the rings and this can be adjusted (using the Multiply node) to join each ring to the next to produce a continuous winding.

To double up the strands you can include maths nodes so that the 'dip' in the wave becomes a second strand - by subtracting 0.5 and then using Absolute to make the negative section positive.

double strands

Adjusting the pitch produces the following :


Use a metallic material and this might be reasonably close to your needs.

One limitation of this is that the 'turns' must be aligned with the texture space - in this case the Z axis of the Object coordinates - so the mesh must be aligned with the axis and cannot be curved. However, this limitation can be overcome by simply UV unwrapping the mesh and ensuring that the faces are all alligned and oriented correctly in UV space and this allows the mesh to take on any form while still maintaining the twists.

One way to achieve this is to create a curve or a path along the desired route of the 'string' and set the Curve Bevel settings to give it thickness.

bevel curve

Convert it into a Mesh (Alt-C).

convert to mesh

Go into Edit mode and select all faces (A) and select Mesh/UV Unwrap.../Follow Active Quads to unwrap the mesh. Open a UV/Image window and scale and align the unwrapped 'island' so that the narrow edge is just the same size as the UV image space as shown below.

scale and position UV island

With the UV Map scaled and positioned as shown, the Y coordinate can be used in place of the Radial Gradient in the previous material. The X coordinate will represent the length along the 'string'. This produces the following material and result :

final material and result

Adjusting the Multiply nodes and the Wave Texture Scale will adjust the pitch and twistiness of the string.

  • 1
    $\begingroup$ Try bumping the scale value WAY up on the Wave Texture node. $\endgroup$
    – Rick Riggs
    Commented Feb 11, 2017 at 4:59
  • 1
    $\begingroup$ @BeshalJaenal Please add a reference image to your question - this will make it clearer to see the exact effect you're looking for. $\endgroup$ Commented Feb 11, 2017 at 7:30
  • 1
    $\begingroup$ @RickRiggs Please could you update the image in your edit to remove the properties panel (it's distracting from the enswer) and add in the radial gradient used to make them spirals rather than rings. $\endgroup$ Commented Feb 11, 2017 at 7:34
  • 1
    $\begingroup$ @BeshalJaenal I've updated the answer to include some maths nodes to hopefully get it closer to what you require. $\endgroup$ Commented Feb 11, 2017 at 14:25
  • 1
    $\begingroup$ @RichSedman, thanks for the great big help!!! $\endgroup$ Commented Feb 11, 2017 at 14:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .