Home | Works | About

Compositor Banner

Compositor


Description

Compositor is a work in progress, not nearly done, that is eventually intended (or rather "hoped") to become a library in some form for Processing to handle layers of images in a manner similar to PhotoShop or PaintShopPro. Think of having a bunch of images that you can use as rendering surfaces for animated objects, and having all those layers know how to composite themselves into a final rendered output. Toggling various layers visible, altering the blending ratios on the fly, et cetera. It's pretty cool, in a geeky sort of way, and it's just barely usable by myself, but it's not quite ready for prime time.

At any rate, I've ripped out some of its guts and decided to release it here as a demo for the purpose of furthering internal development of Processing. The hope is that perhaps some of the code within might help flesh out a few more blend modes and such, providing additional functionality for all. Additionally, if all such blending modes were internal to Processing itself, it'd be a whole lot simpler to just write a lightweight wrapper around some sort of "layer" object that just holds visibility/alpha/etc, and thier manager -- in fact, it'd be so trivial that it probably wouldn't even be worth doing, anyone could just hack something together! So there's a selfish motivation as well.

Contributions are welcomed, either to this project or to Processing itself, if you you can spot improvements to the formulae or other such stuff. (note that I'm not currently concerned with optimization, so I'll thank all in advance who refrain from flooding me with email suggesting that I unroll my loops or etc. :-)

Applets

You'll want a nice wide screen for this one:

CompositorDemo

CompositorDemo
900 x 120


Other color manipulation related stuff:


Somewhat related: gamma adjustment:

GammaAjust

GammaAdjust
200 x 200


Somewhat related: individual channel adjustments:

ChannelAjust

ChannelAdjust
200 x 200


Somewhat related: intermixed or cross-channel adjustements:

MatrixAjust

MatrixAdjust
200 x 200


A little related: "spot" lighting versus additive blending:

SpotLighting

SpotLighting
200 x 200


Barely related: bump mapping:

BumpMapping

BumpMapping
200 x 200

 

Creative Commons License

© 2006 Dave Bollinger