- From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
- Date: Tue, 14 Jul 2009 11:48:36 +0200
- To: www-svg@w3.org
Hello, in http://www.w3.org/TR/2007/WD-SVGFilter12-20070501/#feGaussianBlurElement as well as in http://www.w3.org/TR/SVG11/filters.html#feGaussianBlur the provided Gaussian blur kernel depends only on the x-coordinate: H(x) = exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2) however the attribute stdDeviation provides a value for the standard deviation in y-direction too. And of course the effect is mainly useful, if it depends both on x and y (as typically implemented too). It would be nice to have a formula for the complete kernel G(x,y). Maybe it is something like this?: G(x,y)=H(x)I(y) with H(x)=exp(-x^2/ (2s^2)) / sqrt(2* pi*s^2) and I(y)=exp(-y^2/ (2t^2)) / sqrt(2* pi*t^2) with s the standard deviation in x direction and t the standard deviation in y direction. Another interesting/surprising thing is, why negative or zero values disable the rendering of the filtered object: 'A negative or zero value disables the effect of the given filter primitive (i.e., the result is a transparent black image).' Mathematically there is no difference between positive and negative values in the formula above and a value of zero simply corresponds to a delta-function (distribution) with the convolution result to be the unfiltered/unconvoluted object. Why does SVG differ from this common behaviour? The current behaviour results in a discontinuation within a continous animation from a large standard deviation to 0 to get something like a fade-in effect. Best wishes Olaf
Received on Tuesday, 14 July 2009 10:07:00 UTC