As we have discussed in the previous post, traditional algorithm fails to conserve the length of the manipulated rope. As such, we proposed tangent-space mapping to address the problem.
However, letting the algorithm simply run in tangent space, has another essetial problem. It can now conserve length(or at least prevent the rope from being overstretched), but it can no longer guarantee a certain shape.
An example of TSCPD not working in tangent space is as follows:
Here an intuitive explanation is offered.
There is a fundamental difference between cartesian space and tangent space in that a rope in cartesian space is dependent only on each point’s coordinates, while in tangent space, the state of the rope not only depends on each point’s coordinates, but also the route from the starting point all the way to each point. This means that even if two points in tangent space are close, they might be far away in reality.
However, the mapping algorithm is based on an idea that the entire space is distorted by the same function. This requires that points close in this space are also close in reality, which is not the case.
In order to deal with this problem, we resort to performing mapping in cartesian space, finding the correspondence between points, and then performing a matrix multiplication to get the desired tangent information(angle) of each node on the rope.
Details of the algorithm is described in the previous post.