1 The idea
A painted patch has to move with the plate. A 2D track or a corner pin moves it as one flat piece. If what it covers sits at several depths, a sideways camera move shifts each part by a different amount, and the patch slides.
The pole stands about 5.9 m away, and the patch under it covers sand from about 6 to 27 m, because the sand behind the pole runs far back. Move “Camera slides sideways” and switch the “Patch method”. Watch the sand in the dashed box (where the pole stood) and the yellow zoom box, and read each method’s error in px and its minutes to see where each one breaks.
shift (px) = f · slide / depth2 Hands-on
The shot slides 1.5 m: pick the cheapest method whose patch error stays under 0.5 px
Set the slide to 1.5 m first, then try each method. Watch the far sand and the dunes as well as the sand at the pole base, and compare the minutes only among the methods under 0.5 px.
3 Deep dive
Why one flat patch slides
When the camera slides sideways, a point’s image shift is proportional to 1 / depth: near things move a lot, far things little. If a patch covers things at several depths, no single 2D move fits every part at once.
In this scene the track point sits on the sand by the pole base, about 5.9 m deep, but at a 1.5 m slide the patch under the pole covers sand from about 6 to 27 m. Each depth shifts by a different amount, and that difference is what the patch error measures.
Parts of one object moving at different speeds is the sign you need 3D.
Four ways to move the painted frame
Start with the cheapest method that could work and escalate when it breaks. At a 1.5 m slide the 2D track on the sand by the pole base misses by about 65 px on average, and the corner pin on a flat ground plane by about 7.3 px, because the dunes are not one plane.
| Method | Holds | Breaks when |
|---|---|---|
| 2D track (move) | One depth, small move | Several depths or a long move |
| Planar / corner pin | One flat surface, even under a 3D move | The ground isn’t one plane: dunes, rocks |
| Project on geometry | Every depth the geometry matches | The camera sees what the painted frame never saw |
| Paint every frame | Holds, but costs far more | Long shots: hours of work and boiling |
Project only the patch through the tracked camera
Paint on one frame, take only the painted part (output to alpha, premultiplied), and project it through a camera frame-held on that frame onto a Card or geometry close to the real shape. Then render with the moving shot camera.
The frame-held camera plays the role of a tracker’s reference frame. Without the hold, the paint just follows the camera and never sticks.
- 1RotoPaint on frame N
- 2Alpha + premult
- 3Project3D (camera held at N)
- 4Card / geometry
- 5ScanlineRender (shot camera)
- 6Merge over plate
Where projection runs out
Don’t project the whole plate, and don’t use one flat card for the whole scene: the plate goes soft and the projection stretches and loses depth. Use a card per surface, or geometry that matches the shape.
A projection still shows gaps where the camera sees something the painted frame never saw, and one patch may hold for only part of the shot: make a new patch from a frame that reveals that area and dissolve between them. If the camera pushes in, project from the closest or most zoomed-in frame so the other frames only shrink the paint.
One still can’t follow parallax over a long move unless geometry carries it.
4 In real work
In Nuke
- Try the cheap way first: Tracker → CornerPin2D, or a PlanarTracker (NukeX) on the ground, and watch the far sand and the dunes through the shot.
- If it slides: solve a camera with CameraTracker (NukeX), then place a Card or simple geometry on the ground and the dunes.
- RotoPaint on the closest or most zoomed-in frame, output the mask to alpha, and Premult so only the patch remains.
- Put a FrameHold on the projection camera, set to the painted frame.
- Project3D → Card / geometry → ScanlineRender with the unheld shot camera.
- Merge (over) the result onto the original plate.
Common mistakes → the fix
- ✗ Corner pinning a patch with a rock or step in it✓ The raised part slides; project onto geometry that has that shape.
- ✗ Projecting the whole plate instead of only the paint✓ Output the RotoPaint to alpha, premult, and project only the patches.
- ✗ Forgetting to frame-hold the projection camera✓ Hold it on the painted frame, or the paint slides with the camera.
- ✗ Painting every frame on a long move✓ Paint one frame and let a track or a projection move it: less work and no boiling.
- ✗ Using one flat card for the whole scene✓ Use a card per surface, or geometry that matches the shape.
Before you send the shot
- The patch holds on both the near and the far sand for the whole shot.
- Check the start and end of the shot, where the camera has moved furthest.
- The projection camera is frame-held on the painted frame.
- Only the patch is projected; the plate outside it is as sharp as before.
- No gaps where the camera sees what the painted frame didn’t.
5 Check yourself
You corner pin a ground patch that covers sand and part of a rock. The camera slides sideways. What do you see?
🔒 Answer the question above and this card opens
1. You set up Project3D but didn’t frame-hold the projection camera. What do you see?
2. The camera pushes in through the shot. Which frame should you paint and project from?
Where the numbers come from: The moved view is our clean render re-projected through its own depth pass in the browser (a teaching version, like the 2.5D & Projection pack); errors are computed from the depth pass with the pinhole formula (about 622 px focal length), and projecting and painting every frame count as exact in this model. The minutes are our rough estimates for a 24-frame shot, not industry figures.