Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Rope with sharp change in thickness
#1
Hi, I am trying to work out how to make a smoothed rope with a sharp change in thickness as shown in the attached image. 

Ideally I would like to disable smoothing between 2 control points but this does not appear to be an option. If I just set the thickness of the nodes, it is smoothed over the entire section, centered on the control point rather than starting from it and so I don't get the sharp transition I need.

I have tried adding a total of 4 control points across the area to force it, which looks visibly correct in the editor, but basically explodes at runtime, even with the nodes set to not collide with anything. I suspect it is because it is still trying to stuff 5 sections in between the control points and they are too close together.

Does anyone have any idea how this could be achieved other than having 2 ropes connected to a fixed mesh in the middle?


Attached Files Thumbnail(s)
   
Reply
#2
(29-02-2024, 12:48 PM)Fuzzypeg Wrote: Hi, I am trying to work out how to make a smoothed rope with a sharp change in thickness as shown in the attached image. 

Ideally I would like to disable smoothing between 2 control points but this does not appear to be an option. If I just set the thickness of the nodes, it is smoothed over the entire section, centered on the control point rather than starting from it and so I don't get the sharp transition I need.

I have tried adding a total of 4 control points across the area to force it, which looks visibly correct in the editor, but basically explodes at runtime, even with the nodes set to not collide with anything. I suspect it is because it is still trying to stuff 5 sections in between the control points and they are too close together.

Does anyone have any idea how this could be achieved other than having 2 ropes connected to a fixed mesh in the middle?

Hi,

Ropes interpolate thickness, color, mass, etc between control points and pass this data on to particles. Placing two control points *exactly* on top of each other in an attempt to disable interpolation won't work, because parallel transport (the algorithm used to generate the extruded mesh) requires the distance between consecutive points to be larger than a small epsilon value. Attempting to do so will yield unstable results as you just discovered.

While you can't do this using ObiRopeExtrudedRenderer renderer, you can switch to ObiRopeMeshRenderer which will allow you to deform an arbitrary mesh (no need to tweak control points, the mesh will be used as-is). Note this is costlier than just extruding a basic shape, which is what the default ObiRopeExtrudedRenderer does.

kind regards,
Reply
#3
(29-02-2024, 01:06 PM)josemendez Wrote: Hi,

Ropes interpolate thickness, color, mass, etc between control points and pass this data on to particles. Placing two control points *exactly* on top of each other in an attempt to disable interpolation won't work, because parallel transport (the algorithm used to generate the extruded mesh) requires the distance between consecutive points to be larger than a small epsilon value. Attempting to do so will yield unstable results as you just discovered.

While you can't do this using ObiRopeExtrudedRenderer renderer, you can switch to ObiRopeMeshRenderer which will allow you to deform an arbitrary mesh (no need to tweak control points, the mesh will be used as-is). Note this is costlier than just extruding a basic shape, which is what the default ObiRopeExtrudedRenderer does.

kind regards,

Hi, thank you for the quick reply. I was careful to not place the control points on top of each other as I had seen from a previous post that it would cause a problem, but I suspect that once the smoothing is applied, adding I think 5 particles between control points, the gap between them may be too small.

I'll have a look into the ObiRopeMeshRenderer and see how badly it impacts performance, so we can decide if it is worth the hit or not

Thank you for the advice!
Reply