Page MenuHome

Vector pass errors with animated array, curve and subsurf modifier combined
Closed, InvalidPublic

Description

System Information
Windows 7 64-bit, nvidia gtx 570

Blender Version
Broken: official 2.71 (9337574) and latest 64-bit build (7c9b8aa)
Worked: -

Short description of error
Using a specific combination of modifiers and keyframes the vector pass displays errors using Cycles, with the vector pass being displayed as a patchwork of faces instead of solid objects.

Using an array modifier, a curve modifier and then a subsurf modifier AND having kefyrames on the array's 'count' value causes this error to appear. Remove any one of the modifiers or the keyframes or remove the curve used by the curve modifier and the error does not appear.

The object has a 90 degree rotation animation just to get some vector data to appear.

Happens with both GPU and CPU render.

Exact steps for others to reproduce the error
Just render this file to see the effect:

:
Or just view this render:

To reproduce effect:

  1. Add array modifier.
  2. Animate the 'count' value to change over time.
  3. Add curve modifier.
  4. Add a curve and set it to be used by the curve modifier.
  5. Add a subsurf modifier.
  6. Animate the object to give it some movement, in my example it just rotates between 90 and 0 degrees.
  7. Choose a frame that has the object moving (e.g. middle of animation) and render.
  8. View vector pass in image editor.

Event Timeline

Ray Mairlot (madog) raised the priority of this task from to 90.
Ray Mairlot (madog) updated the task description. (Show Details)
Ray Mairlot (madog) edited a custom field.
Sergey Sharybin (sergey) lowered the priority of this task from 90 to Normal.

Quite extreme case, will have a look, maybe it's solvable.

Sergey Sharybin (sergey) changed the task status from Unknown Status to Unknown Status.Aug 27 2014, 12:31 PM

So the issue is that you actually modifying the geometry by the keyframes. In this case it's not really possible to distinguish which pars of objects were moved to where (that's NP-complex problem to do such a mapping) and hence both Cycles and BI expects that's objects are not changing their topology for the vector pass.

Would be nice to support with some fancy algorithm, but that's outside of the scope of the bug tracker and considered a TODO. Thanks for the report anyway.