Page MenuHome

Vector Pass output in Cycles is wrong when camera focal length is animated
Open, Needs Triage by DeveloperPublic


System Information
Operating system: MacOSX 10.12.6
Graphics card: NVIDIA GeForce GT 750M 2048 MB

Blender Version
Originally detected for: Blender 2.79 (5bd8ac9)
Still broken for daily build downloaded on Sept 10, 2019: 2.81 alpha (6be3348505ce)

Short description of error
Vector pass ignores motion due animation of camera focal length. In case of multiple sources of motion, motion due to focal length is ignored, while the other motion is output (i.e. sum motion is wrong).

Exact steps for others to reproduce the error
Vector pass should contain screen space X, Y displacement of primitives in the current frame to their respective locations in the next frame. The actual vector pass output fails to account for motion caused by the change to camera focal length. E.g. vector pass output for the square_focallength_exr.blend is zero, but it should be similar to the vector pass output for the blend with camera simply moving forward square_cammotion_exr.blend. We have examined the output of the vector pass by first writing to EXR files using the following steps:

  1. open blend
  2. set output file path
  3. execute "import bpy; bpy.ops.render.render(animation=False, write_still=True)" in python console.
  4. examine EXR file using python library available from, by looking at channels Vector.Z, Vector.W (perplexingly, these correspond to correct vector pass output, except when focal length is changed).

We verified that for both builds above:
a) vector pass output for square_cammotion_exr.blend is as expected,
b) vector pass output for square_focallength_exr.blend is zero (WRONG).