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 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. 🙂
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.
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.
This growing series of blog posts discusses color space and gamma workflows in Fusion, especially compositing in linear gamma space:
- Linear Gamma Workflow in Fusion: custom GPU viewshaders that make switching between sRGB, rec709 and Alexa LUTs as easy as in Nuke.
- Linear Gamma in Fusion Part 2: some basics and an example comp to compare the realism of a defocus effect in sRGB and linear gamma.
- Rendering rec709 in Fusion: different workflows for rendering rec709 from various input formats.
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 🙂