Here is the whole pipeline on one screen. Each stage gets its own section below, and the last column points to the guide that covers it in depth.

StageGoalMain Blender toolsDeep dive
1. Plan and shootFootage the solver can readShutter speed, real camera movement, HDRI and measurements on setHow to shoot footage for tracking
2. Track the cameraA virtual camera that matches the real oneMovie Clip Editor, Solve Camera MotionBlender camera tracking
3. MaskMoving things out of the solve, foreground back over the CGDisabled tracks, Mask mode, Mask nodeHow masks improve tracking
4. Lens distortionCG lines that bend like the plateLens panel values, Movie Distortion nodeLens distortion in Blender
5. Scene setupReal scale, a real floor, proxy geometryFloor, Set Origin, Set ScaleFloor error guide
6. LightingCG lit by the same environmentHDRI world, Sun lampAdd 3D objects to footage
7. Shadows and holdoutsContact with the real ground, correct occlusionShadow Catcher, HoldoutShadow catcher guide
8. PassesSeparate pieces you can adjustView layers, Shadow Catcher pass, Multi-Layer EXRThis guide
9. CompositeCG over the plateMovie Clip, Mix Color, Alpha Over, Group OutputThis guide
10. MatchCG no cleaner than the plateColor Balance, Film Grain, Motion BlurThis guide
11. ExportA file you can deliverOutput Properties, Media TypeThis guide
The full tutorial follows one forest shot through this pipeline, from choosing the footage to the finished composite with matching light and shadows. Watch on YouTube

How to plan and shoot footage for VFX

Most failed VFX shots are decided before you open Blender. The tracker needs sharp detail, real camera movement and a mostly static scene. The integration needs to know what the light looked like. On set, that means:

  • A fast enough shutter. Motion blur wipes out trackable detail; see what makes footage good for camera tracking.
  • Real camera movement for a camera solve. Walk, dolly or crane. A shot that only pans from one spot needs a tripod solve.
  • An HDRI from where the CG will sit, captured right after the take. A phone HDRI app or a 360 camera both work.
  • A few measurements: camera height, the distance between two marks on the ground, the focal length. They become your scene scale.
  • A LiDAR scan of the ground if the effect touches it, for a shadow catcher with the right shape.
Footage checklist graphic: controlled motion blur, real camera movement, good lighting, trackable detail, few moving objects, sensible focal length, contrast, HDRI and LiDAR
The on-set checklist from the tutorial: controlled motion blur, real camera movement, good light, trackable detail, few moving objects, a sensible focal length, contrast, plus an HDRI and a LiDAR scan.

Camera and phone settings are in how to shoot footage for camera tracking.

How to track the camera in Blender

Load the clip in the Movie Clip Editor and give the scene the same frame rate and render resolution; a mismatch is the classic cause of a camera that drifts out of sync. Enter the real sensor width and focal length in the sidebar's Track tab, in the Camera panel and its Lens subpanel.

Then track features through the shot, delete the ones that slide or sit on moving things, and click Solve Camera Motion in the toolbar's Solve tab. Blender's manual calls a solve error below 0.3 px accurate; for VFX, aim for under about 1 px and check with a test object. The Blender camera tracking guide covers every setting, and how to fix a high solve error covers a bad number.

Blender Movie Clip Editor after Solve Camera Motion, with the tracked footage and solve settings
Blender's Movie Clip Editor after Solve Camera Motion. The solve error is the first number to check, but not the last.

When the solve is good, Setup Tracking Scene in the Scene Setup panel of the same tab adds a Camera Solver constraint to the scene camera, copies the focal length and sensor width, creates a ground plane and builds a starting compositor graph. It also removes any other constraints from the scene camera and switches motion blur on, so run it before you add your own setup.

On difficult footage, the manual track, clean and solve loop is where the hours go. MotionMaster 3D Heavy Tracking (Standard) replaces it with an automatic COLMAP and GLOMAP based solve, with presets from Super Fast to Extra High and a Zoom option for changing focal length, and imports the camera and point cloud into Blender.

How to mask moving objects and foreground

Masks do two different jobs in a VFX shot. Keep them apart:

  • Masks for the solve keep people, cars, water and reflections out of the camera track. The solver assumes one rigid scene, so a track on a walking person pulls the camera off. In Blender, delete or disable those tracks. The reasons are in why moving objects break camera tracks.
  • Masks for the composite (roto) put real foreground objects back in front of the CG: an actor walking past your creature, a branch crossing the frame. The Movie Clip Editor's Mask mode draws animated mask shapes, and the compositor's Mask node turns them into a matte.
The walking person excluded from the shot, so only the static background is tracked.

MotionMaster 3D AI masks and polygon masks (Max) handle the first job from a few clicks: SAM 2 follows the object through the clip, polygon layers can be keyframed by hand, and Heavy Tracking ignores the masked area. The output is an ordinary black and white image sequence, so you can also load it into the compositor as a starting matte. More in how masks improve camera tracking.

How to handle lens distortion

Real lenses bend straight lines, most visibly near the frame edges. Blender renders a perfect pinhole image, so a straight CG wall will not follow a curved wall in the plate. There are two ways to reconcile them:

  1. Undistort the plate and composite on the straightened image. The Movie Distortion node set to Undistort does this with the lens values of the clip. The graph that Setup Tracking Scene builds works this way, so its output is an undistorted plate.
  2. Redistort the CG to match the original plate: run the render through Movie Distortion set to Distort and composite it over the untouched footage. Render with some overscan, because with barrel distortion the edges of the distorted frame need image data from beyond the edges of the undistorted render.

The second route keeps every original pixel of the plate. Lens models, refining K1 and K2, overscan and STMaps are covered in lens distortion in Blender. MotionMaster 3D lens calibration (Max) lets Heavy Tracking solve one of 12 COLMAP camera models and exports 32-bit undistort and redistort STMaps for Nuke, Fusion and other compositors.

How to set the scale, floor and set geometry

A raw solve does not know which way is up or how big anything is. Fix that before placing CG, or objects float, tilt or sit at the wrong size. In the Orientation panel of the Movie Clip Editor's Solve tab:

  • Floor: select three tracks on the real ground. Blender needs three tracks with bundles, otherwise you get the three tracks with bundles error.
  • Set Origin: one track where the scene origin should be, usually where the CG touches the ground.
  • Set Scale: two tracks plus the real distance between them in the Distance field. This is where your measurement from set pays off.

Then give Blender real geometry near the effect. Shadows, reflections and contact need a surface to land on, and an HDRI cannot provide one. On a flat floor, a plane on the tracked ground points is enough. On uneven ground, use a phone LiDAR scan aligned to the solve, or geometry built from the reconstruction.

Reconstructed points from the camera track describing the logs and ground of the scene
Reconstructed points from the camera track describe the logs and the ground. They are the reference for the floor, the origin and any proxy geometry.

MotionMaster 3D floor alignment (Standard) snaps selected floor points to Blender's ground plane and flips inverted solves. With Max you can also build the set: dense point clouds and Mesh Generation from a Heavy Tracking result, or Point Cloud Surface for floors and walls from selected points. They come from the same solve as the camera, so they are already aligned. The trade-offs are in camera tracking vs 3D reconstruction.

How to light CG to match real footage

Lighting is where a tracked object starts to look like it belongs. The short version of the full integration guide:

  1. 1
    Use an HDRI from the location

    Load it in the World with an Environment Texture node and rotate it with a Mapping node until features in the HDRI line up with the plate.

  2. 2
    Add a sun for the hard shadow

    A Sun lamp gives a clean, controllable shadow. Match its rotation to the direction of real shadows in the plate and its Angle to their softness: a larger angle gives softer edges.

  3. 3
    Test with a neutral sphere

    A plain grey or white sphere shows light direction, brightness and color more honestly than your final model. Compare its shading and shadow with real objects in the shot.

  4. 4
    Match the ground material

    The geometry under the CG bounces light onto it. Give it roughly the color and roughness of the real ground, or a bounce from a default white floor lights your object from below.

In EEVEE, World Properties > Settings > Sun converts the part of the HDRI above the Threshold value into a sun light that can cast shadows, with its own Angle and Shadow settings. A Sun lamp still gives you the most direct control.

Sun lamp direction and angle adjusted so the shadow matches the shadows already in the footage
Rotating the sun and adjusting its angle until the test sphere's shadow matches the shadows of the logs.

How to use shadow catchers and holdouts

Two settings in Object Properties > Visibility > Mask handle the interaction between CG and the real scene:

  • Shadow Catcher (Cycles only) makes geometry invisible except for the shadows and light that CG adds to it. Put it on the floor proxy and your object casts a shadow onto the real ground.
  • Holdout (Cycles and EEVEE) renders the object as a hole with zero alpha. Put it on proxy geometry of real things that stand in front of the CG, such as a tree trunk or a wall corner, and the plate shows through where they block it.

Holdout also works per collection and per view layer from the Outliner. In Cycles a collection can also be set to Indirect Only, so it contributes shadows and reflections without being seen itself. The full setup, the Shadow Catcher pass, the EEVEE options and the common problems are in the shadow catcher guide.

Scan set as a shadow catcher so the sphere casts a shadow onto the real ground in the footage
The scanned ground set as a shadow catcher: only the sphere's shadow is rendered, ready to sit on the real forest floor.

Which render passes and view layers you need

You can render everything into one image, but separate pieces are easier to fix in the composite. A typical tracked shot uses some of these:

Pass or layerWhat it gives youWhere to enable it
Combined with transparent filmThe CG with alpha, ready to lay over the plateRender Properties > Film > Transparent
Shadow Catcher (Cycles)Shadows and light from the CG on the catcher, to multiply into the plateView Layer Properties > Passes > Light
Shadow (EEVEE)White where surfaces get direct light, black in shadowView Layer Properties > Passes > Light
VectorMotion vectors for the Vector Blur nodeView Layer Properties > Passes > Data (not available while Motion Blur is on)
CryptomatteMattes per object or material for targeted gradingView Layer Properties > Passes > Cryptomatte
Separate view layersFor example the CG and its shadow on separate layersView layer selector in the top bar

Setup Tracking Scene shows the classic split: a Foreground view layer, in which the background collection is a holdout, and a Background view layer, in which the foreground collection is Indirect Only and the ground is a shadow catcher. It is a good model for your own layout.

To keep every pass, set Output Properties > Output > Media Type to Multi-Layer EXR. In a Blender 5.2 test it stored Combined, Depth and Shadow Catcher, plus the noisy versions used for denoising, in one file per frame.

How to composite in Blender's compositor

Blender 5.0 reworked the compositor, so older tutorials show nodes that no longer exist. What you need to know in Blender 5.1 and 5.2, according to the 5.0 compositor notes and the manual:

  • The compositing node tree is its own data-block. In the Compositor, click New in the header. Blender 5.2 starts you with Render Layers connected to Group Output and a Viewer.
  • The Composite node was removed. The final image comes from Group Output.
  • Alpha Over inputs are now called Background and Foreground.
  • Color mixing uses the Mix Color node (Add > Color), with blend modes such as Multiply.
  • A render only goes through the tree when Output Properties > Post Processing > Compositing is enabled.

A basic tracked-shot graph, from left to right:

  1. Movie Clip (Add > Input) with your footage.
  2. Movie Distortion (Add > Transform) set to Undistort, only if you composite on an undistorted plate.
  3. Scale (Add > Transform) set to Render Size, if the clip and the render resolution differ.
  4. Mix Color set to Multiply, with the plate in A and the Shadow Catcher pass in B, if you use that pass.
  5. Alpha Over: the plate into Background, the Image output of Render Layers into Foreground.
  6. Group Output for the final image, plus a Viewer for the backdrop.

To iterate faster, set Render Properties > Performance > Compositor > Device to GPU, and preview the comp live in the 3D Viewport: in Material Preview or Rendered shading, open the Shading popover and set Compositor to Camera. The manual notes that the viewport compositor only fills render pass outputs with EEVEE, so check a Cycles shadow catcher comp with a real render.

Final composite frame with a white sphere sitting on the forest floor in the tracked footage
A finished composite: tracked camera, HDRI lighting, nearby geometry as a shadow catcher and a matched sun, over the original plate.

How to match color, grain and motion blur

A composite falls apart when the CG is cleaner, sharper or differently colored than the plate. Work through these in order.

Color management first

Blender's default view transform is AgX, and it applies to the whole composite, footage included. In a Blender 5.2 test, an 8-bit plate value of 230 came out as 188 with AgX, 30 became 22, and a saturated red lost saturation. With Standard, the plate passed through unchanged. For ordinary sRGB or Rec.709 footage, set Render Properties > Color Management > View Transform to Standard before judging anything.

Then color

Compare blacks, midtones and highlights of the CG with similar real surfaces in the plate, using the Scopes tab (Histogram, Waveform, Vectorscope) in the Image Editor sidebar. Correct with Color Balance, RGB Curves or Hue/Saturation/Value, but fix large differences in the lighting and grade only the last few percent. Since Blender 5.0, Color Balance's Lift/Gamma/Gain mode works in linear space, so values from older tutorials look different.

Grain and softness

Rendered CG is clean; footage is not. Blender 5.1 and 5.2 ship Film Grain and Sensor Noise compositor nodes in the Camera & Lens Effects category, next to Chromatic Aberration and Vignette. Sensor Noise, with separate luminance and chroma noise, suits digital footage; Film Grain has presets from 8 mm to 70 mm film. Add grain to the CG before the Alpha Over so the plate does not get it twice, and compare at 200 percent zoom. A very small blur on the CG often helps too, since few lenses are as sharp as a render.

Motion blur

Enable Render Properties > Motion Blur and set Shutter, which Blender measures in frames, to the frame rate multiplied by the shutter time: 25 fps at 1/50 s gives 0.5, and 30 fps at 1/250 s gives 0.12. Setup Tracking Scene turns motion blur on at the default 0.5, which only fits a 180 degree shutter, and phones often pick much shorter shutters in daylight, so check the clip's metadata. Cycles also has a Rolling Shutter option in the same panel for the skew phones produce on fast moves.

How to export the finished shot

In Output Properties > Output, Media Type decides what Blender writes:

Media TypeUse it for
Image (OpenEXR or PNG)An image sequence of the final comp. If a long render stops, every finished frame is kept.
Multi-Layer EXRAll passes and view layers in one file per frame, to re-composite later in Blender or another application.
VideoA movie file through FFmpeg, with codecs such as H.264 and ProRes. Convenient for previews and quick deliveries.

For long renders, write an image sequence and encode the video afterwards. If the shot continues in another compositor, render the CG with transparent film to EXR and export the camera, after baking the Camera Solver constraint with Constraint to F-Curve so the camera carries plain keyframes.

Where MotionMaster 3D saves time (Standard vs Max)

Every step above works with Blender alone. MotionMaster 3D, the addon I build, speeds up the steps that cost the most time on real footage:

StageMotionMaster 3D toolTier
Camera trackHeavy Tracking: automatic COLMAP and GLOMAP solve with presets and a Zoom option; Quick Tracking for a fast previewStandard
OrientationFloor alignment from selected points, Flip for inverted solvesStandard
Still imagesPerspective Matcher to align a camera to one frameStandard
Moving objectsAI masks and polygon masks that Heavy Tracking ignoresMax
LensCamera model choice, calibration and STMap exportMax
Geometry for shadowsDense point clouds, Mesh Generation, Point Cloud Surface, 3D Point GeneratorMax
Footage on geometryCamera Footage Projection and Multi-Frame Texture Bake, which also sets the receiver up as a Cycles shadow catcherMax
Pans and screensTripod Tracker and Planar TrackerMax
Many shotsBatch processingMax

Standard costs $29.99 and Max $59.99, both one-time with free 1.x updates; Standard owners can upgrade for $30. It runs on Windows with Blender 5.1 and 5.2, and an NVIDIA GPU is recommended. If your shots are clean and you like the manual loop, Blender's own tools are enough.

A walkthrough of the addon: Select Footage, Quick and Heavy Tracking, dense point clouds, meshes, AI masks, cleanup and alignment. Watch on YouTube