Compositing Tutorials

Welcome to my Fusion compositing video tutorials. This series is currently growing as I create step-by-step videos along the way. Since I haven’t finished the whole project at the time of recording I cannot show you what it’ll look like in the end. But you can pick any step to start with and use the footage to experiment on your own. All footage is available for download here or can be re-created by the comps provided.

Note: the main tutorial series is currently on hiatus while I’m focusing on projects as well as various plugins and other kinds of tutorials. Look for the latter at the bottom of the page.

The Brief

The aim of these tutorials is to composite an underwater shot of a miniature submarine. We’ll pull a green screen key, fix jittering in the plate, smooth the camera move that was done on set, create a particle system for underwater plankton and look at reference images to develop a moody underwater look.

The original submarine footage has been created in Fusion but it’s intended to be handled like a plate that was shot on film. The only elements we’ll use are this footage and a 3D camera track. This, however, is not just an arbitrary limitation. You could do the whole shot in CG (and nowadays it’s probably best to do so) but the problems that have to be solved here could just as well pop up in non-CG shots with actors and elaborate sets or projects where it’s not your decision which shots will be full CG. Moreover, this is a compositing tutorial and not a lighting/shading exercise. 🙂

Creative Commons Lizenzvertrag
All tutorial files are licensed under a Creative Commons Attribution 3.0 Unported (CC BY 3.0) license.

The project files will rely on the following directory structure. If you unzip the downloads from this site into a directory of your choice, they will already have these subdirectories included so everything checks out nicely. Each tutorial’s archive should simply be merged with the unpacked contents of the previous steps.

\comps            // all Fusion .comp files
\footage          // image sequences (in subfolders)
\images           // still images
   reference      // reference images for look development
\render           // render output of comp files (in subfolders with matching names)

Tutorial 1 – 3D Stabilizing the Camera Move

The first task will be to 3d-stabilize the camera move of our submarine. The footage jitters a lot but our final shot should sport a smooth underwater camera. Possible reasons for this kind of jittering are an off-center turntable (for miniature shots), a bumpy hand camera or a stop-motion film where things just wobble a bit due to the nature of the shoot. After stabilization, the camera move is tweaked to make it look less like a miniature and more like a real underwater camera move. This task will be continued in the next tutorial.

The zip archive contains footage in proxy resolution, which is fine for judging the camera move. You can create the full-res footage by rendering the included submarine_turntable_v004 composition.

If you don’t want to do this, you can download the fullres footage (163 MB zip) from my account at smartbins.net. I hope it’s a reliable solution, so please tell me if you encounter any difficulties.

Tutorial 2 – Retiming the Camera Projection

In part one, the camera move has been smoothed, but it had to be the same length as the plate that was shot. In this part of the tutorial, I’ll demonstrate how to use expressions to retime the projection camera based on another value – the angle of our smooth camera in this example.

Using these techniques, you can integrate matchmoved footage into modified camera moves. This may be necessary because there were problems with the camera move on set (bumpy, wrong pacing, …), the director changes his mind or the intended camera move wouldn’t have been possible in real life.

Once again, you can download the fullres footage (222 MB zip) from smartbins.net. The script that is used in this tutorial can be found here: Invert Animation Curve.eyeonscript


Various Other Tutorials

These are not related to the submarine project.

Projection Workflow for Object Removal

This video is about removing objects (a shadow in this case) from a shot using a 3D matchmove, some scene geometry and automated white-balance matching. You can download the complete project and footage as well. Yeah, it’s a home video of mine but the technique has proven valuable on various shows already. A script that helps with creating projection cameras can be found here.


Pixelizing Faces (Mosaic Effect)

It’s just a tiny effect, but the video shows that you can take even little tasks like this a bit further.


Vertical Alignment of Stereo Pairs

To fix vertical misalignment of stereo pairs, there’s an easy 2D solution that works most of the time: align one corner first then simply rotate until the opposite corner is aligned as well. 90% of the time, you’re done now but you can also experiment with scaling and corner pins after that. This example uses two photos that I’ve shot with my iPhone without any kind of stereo rig.


Creating Macros with User Controls

The “User Controls” tool script that ships with Fusion allows you to add all kinds of custom sliders and checkboxes to tools. They allow you to take macros to a new level since you are no longer restricted to the controls of tools you have actually published.


Aligning and Layering of Camera Projections

It’s easy to extend a camera projection from an additional angle to allow greater freedom of movement with your scene camera. This tutorial explains how. It also covers aligning a photo projection using EXIF data like focal length and camera model. Also, check out a new tutorial demonstrating object removal using projections and my script to quickly align image planes to points in a point cloud.


Gamma Workflow

This growing series of blog posts discusses color space and gamma workflows in Fusion, especially compositing in linear gamma space:


Scripting

This series of tutorials covers basics of scripting – creating and connecting tools, object oriented programming, animating keyframes and asking for user input. To be continued… maybe 🙂


6 Comments

  • Nolteman says:

    Please more tutorials!

  • Stefan says:

    I’m currently tied up in all kinds of stuff. But it makes me glad to hear your feedback. Maybe I’ll do more in the future!

  • bjoy says:

    You have put awesome stuff here, please do more tutorials and make this great piece of software live.

  • Sally04 says:

    Hallo,
    ich fand Deine Tutorials auch sehr lehrreich. Ich würde mich über eins zu Thema “Linien zeichnen” in Fusion freuen. Habe die Lines-Fuse ausprobiert, da stürzt aber immer Fusion ab wenn ich einen Punkt animieren oder an einen Tracker binden möchte 🙁

  • Stefan says:

    Hi, vielen Dank. Leider benutze ich kein Fusion mehr. Dass die Fuse abstürzt ist ärgerlich. Ich kann es mir nur durch einen Fehler in neueren Fusionversionen erklären (benutzt du die 8er?) Die Fuse funktionierte früher ganz gut. Sie war eher nur eine Spielerei mit der API, deshalb habe ich sie nie in Produktion benutzt (mit einem Tracker z.B. wie du erzählst).

  • Ariel says:

    Hi Stefan! I just wanted to spend a minute to thank you for all of your tutorials and scripts, I’ve spend literally days crawling all over your website reading things about Fusion that are way over my head, but I’m learning a lot in the process. I work in a small Arch Viz studio in Chile and I’m trying for us to move away from After effects to Fusion(After effects has not hold reliable when working with huge images, Fusion just takes them like they’re nothing) and your site has been an eye opener in a lot of things (bless you for that sRGB viewshader). I don’t know if you are still around your website, but if you do, thank you for so much. I owe you at least a beer if you ever happen to come to Chile.

Leave a Reply

XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">