Real-time layer editing in Andiamo   Leave a comment

Version 013 of Andiamo implements a stack of layers that can be edited in real-time. This system is based on the analogy of a drawing made of many semi-transparent sheets of paper. The sheets are stacked on top of one another to generate the final image. Layering is a very important technique that allows to create complex results from a relatively simple palette of effects. For example, starting with a video and applying a combination of edge detection, posterize, pixelation and bloom effects, a result like the following is obtained:

Layered filters demo

Note on the right side of the screen (click on the image to see it without cropping) the layer selection strip that allows to chose the current layer in the stack. Andiamo has 6 different types of layers: drawing, filter, shapes, image, text and clips. All layer types, except the filters, render something to the canvas. In this sense the filter layers are different, since they take the current content of the canvas and use it as the source image for the filter effect (implemented as GPU shaders). The resulting filtered image is drawn to the canvas, so the subsequent layers can draw on top of  it.

The current stack mechanism allows the insertion and deletion of layers in real-time, and dynamic reordering of the stack is planned for future releases. This latter feature in fact depends more on the implementation of the interface elements to handle reordering, than in the improvement of the stack manager, since it is already based on the assumption of  a dynamically changing stack.


Posted February 16, 2009 by ac in Programming

Tagged with , , , , , , , ,

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: