Home · Lab · 2.5D & Projection

P3 Nodal pan vs camera translation

Rotating in place has no parallax, so 2D is enough; once the camera travels you need 3D

2.5D & Projection · ~7 min · Free

1 The idea

If the camera rotates around the centre of its lens (a nodal pan), every ray still arrives from the same direction; the picture just slides as a whole. Near and far move together, so a 2D track and a matching transform line up across the frame.

If the camera travels even a little, near and far stop moving together. A 2D fix locked to the far distance drifts on the near rocks straight away (even the hills drift a few px). That is where you need a 3D camera track or separate layers.

rotate only: x′ = K · R · K⁻¹ · x (one 2D warp works at every depth)

2 Hands-on

Make a camera move of at least 10° that the 2D fix still matches everywhere (error < 1 px)

Difference view: black = they match, bright = the 2D fix is off from the real view

SkyVFX Lab · P3interactive · 1001

3 Deep dive

Why rotation has no parallax

Every point in the scene sends a straight ray into the lens centre. Rotate the camera exactly around that point and every ray still arrives from the same direction; only the whole picture turns. That change is a single 2D warp (a homography) that holds at every depth.

In the figure the “2D fix” is the plate on a very distant card, filmed by a camera that only rotates. That is the same as tracking the far scenery and warping the whole frame to it.

A small slide already breaks it

The 2D fix is off by exactly the parallax it ignores, ≈ f·T·(1/Z_near − 1/Z_far), where Z_far is the depth the fix is locked to. The figure locks it at the far distance (effectively infinity), so the error is about f·T/Z. A slide of only 0.5 m leaves the near ground about 72 px off, while the hills are only about 4 px off.

MoveParallaxUse
Locked offnoneno track
Nodal pan/tiltnone2D track / warp
Travel (dolly, truck, handheld)yes3D camera track or layers
Travel, everything very fartiny2D often works

A tripod is not automatically nodal

An ordinary tripod head pivots below the camera, not at the lens centre, so a little travel sneaks in. Very close objects can show parallax. Check by stabilising on a far track and seeing whether near things stay put.

Stabilise on a far point and watch a near one: if it drifts, there is parallax

Pick the simplest tool that still works

Decide per job, not per shot. The same shot may need only 2D for a sky replacement (very far) but 3D to place something on the near ground. Start with the simplest method and step up only when the check fails.

4 In real work

In Nuke

  1. Tracker on a far feature → set it to match-move, or create a Transform from the track
  2. Check: stabilise with the Tracker and see whether near features stay still
  3. If there is parallax: solve a 3D camera (for example CameraTracker in NukeX or a matchmove app), then use the Camera with Cards and ScanlineRender

Common mistakes → the fix

  • ✗ Solving a 3D camera for every shot, even nodal pans✓ Check for parallax first. If there is none, 2D is faster and steadier
  • ✗ Using a 2D track on a walking shot to place something on the near ground✓ Near objects need a 3D track, or a track at the same depth as the object
  • ✗ Assuming tripod = no parallax✓ Stabilise and watch the foreground every time

Before you send the shot

  • You know whether the camera only rotates or also travels
  • After stabilising, near and far points both sit still (if using 2D)
  • The track sits at the same depth as what you place
  • Play the whole shot to make sure the element doesn’t slide

5 Check yourself

One question to check yourself

A tripod shot pans slowly with no travel. You need to put a sign on a distant rock. What is enough?

What you learned

🔒 Answer the question above and this card opens

More questions

1. A drone flies forward past very distant mountains and you need a new sky. What is likely enough?

2. The camera slides 0.1 m. How far apart do a rock at 5 m and a hill at 120 m drift (f ≈ 622)?

Where the numbers come from: The scene is rebuilt in your browser from our desert plate and its Blender depth pass (35 mm lens, 36 mm sensor, 1.6 m high, tilted 4° down). Parallax numbers use the pinhole formula: move the camera T m and a point Z m deep shifts ≈ 622·T/Z px in a 640-wide frame. The layer split, the “stretch” measure, the depth mesh and the automatic clean plate are teaching versions (object edges and rock removal are simplified), not Nuke output.