W3C home > Mailing lists > Public > www-svg@w3.org > July 2009

feGaussianBlur

From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
Date: Tue, 14 Jul 2009 11:48:36 +0200
To: www-svg@w3.org
Message-Id: <200907141148.36430.Dr.O.Hoffmann@gmx.de>
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 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:42 GMT