Earlier this week, I talked about some of the consumer-oriented feature improvements in Adobe Creative Suite CS4. But the most interesting development from Adobe is actually more on the developer side. Pixel Bender is a new format for making GPU-accelerated (and CPU multi-threaded) filters, which means fast blends (with different blend modes) and special effects. You can even use it for math operations. Now, whether or not you yourself are able to code these sorts of things, I’m sure we’ll see plenty of filters being passed around online. True, it means dealing with yet another way of creating these filters, but since it operates at a low level, it shouldn’t be too tough to adapt GLSL and other GPU code and techniques for Pixel Bender.
This should be particularly interesting for the open-source, multi-platform, Flash-based VJ tool Onyx, and for adding new, custom effects to your motion graphics arsenal. The filters will run natively in Flash 10 and After Effects CS4, with a plug-in coming to Photoshop.
Kevin Goldsmith at Adobe has been talking a lot about the new release on his blog.
Here’s an especially juicy tidbit from Kevin:
In addition to Pixel Bender Kernels (pbk) and Pixel Bender Bytecode (pbj), there is another Pixel Bender format. Pixel Bender Graphs (pbg). Pixel Bender Graphs are supported directly in After Effects CS4 and the Photoshop Pixel Bender extension. Pixel Bender Graph is an xml-based format that allows you to combine a network of Pixel Bender Kernels into a single effect for WAAAY more powerful filters. We’ll be posting a new version of the toolkit soon that supports the editing of these graphs and we’ll also be posting a specification for them soon on Adobe labs.
They’ve also made available a developer toolkit and even command-line tool. Updated: Kevin notes in comments here:
The Pixel Bender Toolkit has been available on Adobe Labs for almost a year now and anyone can install it and play with the language.
Also, there is a Pixel Bender developer exchange on adobe.com if you are looking for some sample code (although there is tons of stuff now on folks’ blogs).
Of course, that’s what we’ve seen with ActionScript in the past — developers get onboard well in advance of a release, thanks to publicly-available tools, code, and documentation, and then by the time the tool is out a lot of the discussion and examples are coming from developer and not just Adobe. There’s a lesson here for other framework developers (Apple, Sun, others, I’m looking at you).
Gotoandlearn already has a video tutorial on Pixel Bender. (auto-playing QuickTime link)
It’s not entirely revolutionary in that a lot of this does go on behind the scenes in graphics software. What is a big leap is making that functionality accessible to an end user of this kind of software. I think it should also put the pressure on Sun to expose more of this kind of functionality in JavaFX, because it’s clear people want it — and my sense is, like some of the other developer accessibility in CS4, this probably came from popular demand.
Who wants to again declare the GPU is dead? Not … yet, anyway.
For another excellent round-up, see John Nack on Adobe
He notes that Pixelero is already cranking out sample code. (Some of those examples inspire me to try some new techniques in Processing.) Never underestimate the size and passion of the Adobe community, that’s for sure.