Friday, November 13, 2009

New Project for Post-Processing FX



View SWF


I'm starting a new project called Pyronova, which is a post-processing FX framework. It features a network-based design, which allows you to connect "Pyro nodes" as you like to create your own post-processing effects. The project is still under development, so the source you find in the repository is just its prototype.

Here's the network diagram for this example.


A BitmapDataNode represents a BitmapData object. A PerlinNoiseNode generates Perlin noise bitmaps. A DisplacementNode takes two inputs: one regular input and one as a displacement map. A BlurNode, as its name suggests, blurs a bitmap up. A RedrawNode redraws a bitmap with additional settings such as transformation matrices and color transforms. "Pyro layers" are final destinations for post-processing networks, each layer having one single root node as its "final appearance".

In this example, a BitmapDataNode is used to hold reference to the Bunny-In-Black (BIB) bitmap data. The BlurNode blurs the BIB bitmap (previously processed by the DisplacementNode with Perlin noise distortion) and then pass it to the RedrawNode. The RedrawNode is assigned a ColorTransform object with RGB multipliers of values 1.3, essentially lightening things up. Finally, Layer 2 presents this final "blurred and lightened-up" bitmap and is assigned an ADD blend mode, serving as a "glow overlay" to the original bitmap, which is displayed through Layer 1.

Here's some sample code that sets up the network:

I'll push this project into Beta as soon as possible.

2 comments:

LearnGaming said...

wow , the effect is so cool !
Displacement + Glow , and it's
dynamically effect , good job !!

gregbown said...

Wow! Someone should use sound to modify the noise instead of mouse position.

Really cool effect though! I wonder if you could use it on video frames?