I was transforming an object with a matrix A
using Object3D.applyMatrix4 and I found that at one point it didn't preserve an eigen vector's direction.
So I tried animating interpolation between Identity Matrix I
and A
and I found this:
How could the transformation be not continuous?
@manthrax 's answer pointed out the fundamental problem of interpolating a matrix linearly which I wasn't aware of at the time and he was right about that. But the real problem was that Object3D.applyMatrix4
wasn't the right function for explicitly defining local matrix. I tried setting Object3D.matrix
property directly and it worked. And the linear interpolation (although I shouldn't do that) became continuous.