::home ::introduction ::researchI II III ::modeling_&_anim ::2d_effect ::compositing ::conclusion ::references

Compositing::

Now that all of the raw material has been produced, it all has to be put together. The compositing pipeline for this project is as follows:
Take the rendered low poly puppy and adjust the colours to flat shading. This is to immediately remove the 3D look.
Overlay the 2D hand drawn frames. These frames have to be cleaned up and an alpha channel extracted to allow overlaying.
Play around with other layers and effects to bring more complexity to the look.


The easiest way to explain how this was done is to explain the compositing network. Start off with the raw scanned hand drawn frames. First thing is to use the previously described visual reference and place the image in the right place on screen, so that it matches up with the 3D rendered frames.
Then crop the image to remove any unwanted areas. This leaves the frame at a too low resolution therefore a scale node is needed to bring it back up to the correct resolution.
Contrast is changed to pick out the darkest areas. What is trying to be achieved is a clean white background and dark pencil lines drawn on top.
Now that we have a clean background, the images are truned to monochrome so that an alpha channel can be extracted (alpha channels are only 8bit, therefore either only one of the RGB channels can be used. To make sure that all three are the same the image is turned into monochrome, which is effectively giving each channel (RGB) the average of all three, making them all the same.)
Using a channel swap node, a channel (R, G or B) can be copied into the Alpha.
This is then piped into an Mcomp, which composits many nodes on top of each other.

The next element is the 3D rendered low polygon puppy. The reason for using the low polygon puppy is simple. When the frames were traced to create the hand drawn animation, the high polygon model was used. This allowed smooth outlines and shading. For the colour element a rougher look is required. By using the low polygon model the lines will overlap, spill over and under each other, and have a hand drawn inaccuracy to it.
The alpha is inversed to allow the compositing of the new colour onto the frames.
Using the channel swap, the new colour is applied to the rendered frames which has an alpha channel, therefore only showing through the now flat shaded puppy.
This removed the alpha channel from the stream, so it has to be put back in.
In the original animation the puppy's feet intersected the floor, but this didn't matter much. When creating the renders with alpha channels, only the dog was rendered (without floor or hoop). This meant that even parts that shouldn't have been seen, such as the paws below ground level, are seen. This rotospline removes anything that shouldn't be seen.
The output is passed on to the Mcomp.


As the dog passes through the hoop, it had to be rendered in two parts, the front and the back. These are then put into the Mcomp in the correct order so that the puppy jumps inbetween these two layers.

The colour white is there to be put on as a plain white background. Further up there is also another link which deals with the background. There I put the original uncleaned hand drawn animation as the background under the coloured stuff, as the paper rippling in the background gives the animation a much bigger 2D traditional feel. After playing around with using a 3D background treated in the same fashion as the puppy it detracted from the whole animaion, so it was left out.

Another element which was left out was shadow. These are also found in 2D animation, but here is just caused a distraction.

The previously mentioned eye problem was fixed by rendering them out seperately and compositing them on top of the rest.

Another layer was added to improve the shading. This was an edge detection layer, taken from a previously written Renderman shader. The outline was composited at half transparency so not to appear too harsh.



Innovations Project:: Daniel Canfora
MMI