3
$\begingroup$

I have a bezier line which has been given a width (fill:full). I would like to give it a rope texture. For that I activated "Use UV for mapping" in the Curve-Tab and used the node setup which can be seen in the screenshots. This basically works but the UV coordinates seem to be different in all segments. You can see this at the changing density of normals which are diplayed in edit mode. This results in the material looking different for each segment. Is there a way to get a uniform distribution over the whole bezier curve?

I know I could just use meshes instead of bezier curves, but I am doing the rigging of a three-masted history sailing vessel wich will feature (many) hundreds of ropes in the rigging, some with sagging etc., so for now I would like to stay with the curves. Change in material appearance at new segment Changing normal density at new segment

Thanks in advace and best regards, Thomas

$\endgroup$
5
$\begingroup$

When one handle is longer than the other, you will get a speed discontinuity at that control vertex (the curve's derivative will be discontinuous in that point). That's how Bezier splines work. There's no way around it other than using different spline type.

The way to solve this is to use a tile-able rope mesh piece, like this:

enter image description here

Put an Array modifier on it to tile it to the curve length and a Curve modifier to fit it to the curve:

enter image description here

And you are done, even when the curve has discontinuity, the mesh does not. Don't forget to provide enough subdivisions on the curve (64) and on the mesh:

enter image description here

$\endgroup$
3
$\begingroup$

In fact, this IS possible to get uniform distribution so lets roll...

  1. Activate LoopTools in preferences

  2. Convert Your spline into a mesh using the Alt+C shortcut

  3. In EDIT mode select all the verticies and use the previously activated LoopTools - its SPACE function distributes all the points evenly

  4. Convert Your mesh into a spline again using the Alt+C shortcut

  5. DONE!

    Hope it helps mate ;).

    JayM

$\endgroup$
1
$\begingroup$

I had the exact same problem for splines. The automatic UV mapping depends on the spacing of your control points.

Either you find a way to normalise the b-spline with python (like this for 3dsmax) or you create a new spline with only two points initially. First point at 0, 0, 0, second point at 1, 0, 0. Then subdivide the spline. The more subdivisions, the smoother the result. The make the new spline follow your other spline. Don't forget to activate UV mapping. And you'll have smooth and regular mapping.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.