W3C home > Mailing lists > Public > public-fx@w3.org > January to March 2011

Re: Filter Templates

From: Dean Jackson <dino@apple.com>
Date: Thu, 24 Feb 2011 17:09:24 -0800
Cc: robert@ocallahan.org, Rik Cabanier <cabanier@adobe.com>, Cameron McCormack <cam@mcc.id.au>, Brad Kemper <brad.kemper@gmail.com>, www-style list <www-style@w3.org>, "public-fx@w3.org" <public-fx@w3.org>
Message-Id: <704CAE7A-8476-4F52-A17B-58284C3BE693@apple.com>
To: Rik Cabanier <cabanier@gmail.com>

On Feb 24, 2011, at 4:56 PM, Rik Cabanier wrote:

> I asked the PixelBender people and they claim that as long as each filter can be accelerated on the current hardware, the whole graph will be supported. If not, you could switch to software rendering.
> It is true that not everything can be supported on every device.

I don't believe it is that easy. I mean, it is theoretically that easy - if each effect can be accelerated then of course they are all accelerated. But there are many tradeoffs to make. For example, if the graph is complex, you might be able to optimise it (you could work out that you can crop an image before blurring it, because you don't use all the result pixels). In fact, you might be able to combine some operations and build a different, but compatible, filter graph on the fly using effects/shaders that are not directly exposed to the user. It might be difficult to accelerate these, but your optimisation might be good enough that the CPU is better anyway.

Anyway, I don't think there is much difference between particular technologies here. We all agree we want some canned effects, a way to do more complex effects, and the ability to build really fast implementations of both.

I would hope that whatever we come up with could be implemented *using* PixelBender. 

> The nice thing about PB is that it has a software renderer to fall back on which is not something that WebGL or feGL offers.

I disagree. There are software implementations of GL. I'm not sure I understand here.

The PixelBender language can be considered a subset of GLSL functionality that is designed for image effects. Core Image uses something similar. So does Collada, and many graphics packages. Writing a software renderer for these, or for some feGLSL element, is acceptable and probably required (even when you have hardware available).

> In addition to support for PixelBender kernels, we could "bake in" a set of canned filters which would mirror your list.

Isn't that the plan? We're baking in a set of effects, and giving people flexibility via SVG/WebGL.

Dean
Received on Friday, 25 February 2011 01:11:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 25 February 2011 01:11:41 GMT