Re: [SVG Transforms 1.0, Part 2: Language (2009-03-20)] - Feedback for "4. 'animateTransform' Extensions"

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