- From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
- Date: Tue, 24 Mar 2009 11:11:32 +0100
- To: Gavin Kistner <gavin@phrogz.net>, www-svg@w3.org
Gavin Kistner: > On Mar 23, 2009, at 8:50 PM, Rick wrote: > > 2009/3/22 Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>: > >> Hello SVG WG, > >> > >> mainly a suggestion for this section: > >> > >> Consider the type matrix to be animatable too, this can > > > > My $0.02, I've noticed that doing transformations with matrices is > > noticeably more efficient than with lower level transforms, presumably > > because they are multiplied out to matrices anyway and that step is > > skipped. I can't say that I've tested this everywhere, but this is > > the case in Firefox at least. > > > > Matrix animations would be nifty. > > I had thought that piecewise interpolation of the elements in a > transformation matrix will often result in intermediary matrices that > are not desirable. Specifically, can't the piecewise animation of two > affine matrices result in intermediary matrices that are not affine? > > I'm not positive about this, but believe I've experienced it in the > past. At least in the 4x4 matrices of 3D world, lerping two matrices > is not the same as lerping the constituent individual scale/pivot/ > translate/rotation vectors used to produce the end matrices. Of course, if you interpolate between the components of two matrices, this is a quite different result as to decompose the matrices in an (arbitrary) set of scale, rotation, skew and translation matrices, and interpolate their parameters (like the rotation angle and or the skewing angle). But if authors have the choice, they can decide on their own, what is convenient and intended. Currently they have practically no choice. Therefore I think it is a bad idea of the corresponding CSS-draft to decompose a matrix in an (arbitrary) set of transformations, because this is quite opaque for authors, what really happens, they do not have the choice and control and if they need, they can compose their own (not arbitrary) set of transformation on their own, if they need to do so. About the interpolation between matrices - I tested this as mentioned for the SVG1.1 matrix type with a simulation using an animation of xlink:href of use with about 20 interpolation frames per second with an arbitrary selection of the initial and the final matrix and this works without any surprises (at least for me). There should be nothing special about the 4x4 matrices as well concerning interpolation, even with calcMode spline one cannot leave the range of possible matrices within the interpolation. Using such a type of matrix always means an affine transformation in the related space (4x4), therefore more advanced and realistic perspective constructions for example are not possible with this approach anyway. Olaf
Received on Tuesday, 24 March 2009 10:55:07 UTC