I often heard that not all are happy with the current interpolation. At first it is not very intuitive to use and at second it has some problems to be fluid in motion (over- or undershots). So i spend the last days in investigating a better method to do the interpolation.
At first i wanted to get rid of TCBs control over the tangents, which should be able to be specified by the user itself, even though default values (tangents) are provided. So i came to the solution that the path a vertex travels should be a bezier-spline, that can be directly manipulated in the canvas. The control points of this spline will be the locations at the keyframes. The tangents will be initially calculated with Catmull Rom, since it is easy to compute and gives good results. (TCB in standard configuration does exactly this) After that, the user is free to manipulate the tangents and the path the vertex travels. Moving the control points is like moving the vertex itself, while manipulating the center control points (tangents) allows to tune the animation visually. So you can easily predict which way it will travel from start to end. Displaying the points of frames between keyframes is also an easy task.
Thoughts in the big future: If this works as expected, we might have the possibility to get rid of the time line (at least the big one) completely, since anything could be handled directly inside the canvas. Even moving keyframes could be done that way. (Just drag it to another displayed keypoint)
So far the theory. Currently i will try to setup an example application with this approach, which i will write in Java. Since im much more comfortable with it then with C/C++. But basically both languages share most things in common and porting it to C/C++ wouldn’t be so hard. Hardest part so far is the control over the speed on a bezier curve. Since it can’t be solved directly (neither with TCB [cubic hermite curves]) i will have to write a fast approximation. (if its fast in Java, it should run like hell in C )
If you have any questions, suggestions or don’t like the approach, then please let me know.