Re: Filter Effects

Zooming in on filter effects is in indeed a bit of implementation
complexity. You need to have some logic to restrict application of the
filter effect to as small of a region as possible, but taking into account
the fact that you can't just simply clip offscreen image buffers since the
displayed pixels might be affected by pixels off of the display area (as
you point out below). Additionally, you might want to have some logic that
checks the size of the offscreen irasters, and if too big, chooses a
smaller resolution for displaying the zoomed filter effect.

Jon Ferraiolo
SVG Editor
Adobe Systems Incorporated

At 03:35 PM 7/13/00 -0500, Jim Mork wrote:
>Maybe I have missed something obvious, but one of the general problems I'm
>not clear on is how to efficiently handle issues arising due to the
>non-local nature of some filter primitives--specifically, feConvolveMatrix,
>feDisplacementMap, feGaussianBlur, feMorphology and feOffset.  
>When our viewer/editor zooms in on a graphic with a filter effect applied to
>it, what are we supposed to do?  
>To illustrate the problem imagine the following scenario.  
>Let's say we have a 100 x 100 pixel graphic with a Gaussian Blur applied to
>it.  We want to zoom in a factor of 10.  To display this properly, we will
>have to expand the blur radius by a factor of ten as well.  With high zoom
>levels and large graphics, it won't take long for this to become extremely
>computationally expensive, to say the least.  Even if the zoomed graphic is
>so large little of it fits in the view, that is little consolation because
>of the non-local nature of the said primitives.
>In the case of zooming, an alternative is to render the graphic at 1:1 and
>resample it up to the zoomed level--but this technique seems to subvert the
>idea of "scalable" graphics.
>Perhaps I have missed something obvious, but the answer is not clear to me.
>Any advice will be greatly appreciated.
>Best regards,
>James Mork
>Senior Software Engineer
>Jasc Software, Inc.

Received on Thursday, 13 July 2000 17:18:42 UTC