Page MenuHome

Alembic caches are not updated during render if the `Frame Offset` Frame is driven (works when it is keyframed)
Confirmed, NormalPublic

Description

System Information
Operating system: Linux-5.3.12-200.fc30.x86_64-x86_64-with-fedora-30-Thirty 64 Bits
Graphics card: GeForce GTX 970M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 440.44

Blender Version
Broken: version: 2.83 (sub 0), branch: master, commit date: 2020-01-14 06:12, hash: rB1bcb2bfd5724

Short description of error
Alembic caches are not updated during render if the Frame Offset Frame is driven (works when it is keyframed )
Affects both Cycles and Eevee
Note: even when both are keyframed exactly the same, I ran into the situation where a frame was not updated the same during render (and even viewport), needs investigation as well...

Exact steps for others to reproduce the error

  • Open file
  • notice viewport scrubbing works
  • render Ctrl+F12, notice the left cache is not updating

Original report


System Information
Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: Quadro P3200/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.70

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: rBf6cb5f54494e
Worked: (optional)
and Blender 2.81

Short description of error
When rendering in eevee, there is a bug in that an alembic mesh (high density mesh) is not updating until after the render has finished.

The mesh is updating in the viewport, in both cycles and Eevee.

The mesh updates in say five-ten seconds. Eevee renders the frame (when rendering animation) in 2-3 seconds. It takes longer than eevee takes to render the frame to update the mesh, and when I render the animation, the mesh is not updating at all. So say I render frames 65-72, the renders show no change in the Alembic mesh during those frames. If I change the frame in the viewport, or render in cycles, the mesh updates and renders fine. If I set the timeline to say frame 72, then render the animation, Eevee then treats that alembic mesh as the "fixed" mesh and renders that in every frame.

one point, the mesh is updating using the position of a null to set the frame counter for the mesh, (as its start point is offset from the start of the animation - because I cannot seem to get the frame offset to work without an animation driver).

Any suggestions?

Exact steps for others to reproduce the error
Import dense mesh as alembic sequence.
Surface it and create an animation "round" it. Offset the start time (may not be necessary). Animate the frame counter using an empty (distance in X = sequence number to display).
[Based on the default startup or an attached .blend file (as simple as possible)]
The mesh is really dense. It's a realflow sim with 1m + particles. I will put it on the dropbox if needed, but Blend file is here:

Event Timeline

Paul (Magicmix) renamed this task from Alembic mesh Bug. Eeevee renders frame beforeb - so alembic mesh to Alembic mesh Bug. Eeevee renders frame before Blender updates mesh - so alembic mesh does not update during render..Dec 23 2019, 7:55 PM
Paul (Magicmix) updated the task description. (Show Details)
Paul (Magicmix) updated the task description. (Show Details)
Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from User.Mon, Jan 13, 2:02 PM

The mesh is really dense. It's a realflow sim with 1m + particles. I will put it on the dropbox if needed, but Blend file is here:

Yes, please put up a link so we have a chance to repro.

Paul (Magicmix) changed the task status from Needs Information from User to Needs Triage.Wed, Jan 15, 12:24 AM

Hi. I have put meshes 0-85 on the dropbox. that should be sufficient. If not please let me know, and I'll put the other 3 gB up.

https://www.dropbox.com/s/5k2wi2rgm9m636j/meshes.zip?dl=0

the mesh is updating using the position of a null to set the frame counter for the mesh, (as its start point is offset from the start of the animation - because I cannot seem to get the frame offset to work without an animation driver).

Hm, seems to be something about the driver.
If I simply keyframe the frame offset, I get correct updates in render, with the driver I can reproduce no updates in render, checking... trying to put together something simpler (are you sure this only happens with such dense meshes?)

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Fri, Jan 17, 4:38 PM

Can only repro with the bigger .abcs (might also be about the fact that these are sequences), will update report description as well

CC @Sybren A. Stüvel (sybren)

Philipp Oeser (lichtwerk) renamed this task from Alembic mesh Bug. Eeevee renders frame before Blender updates mesh - so alembic mesh does not update during render. to Alembic caches are not updated during render if the `Frame Offset` Frame is driven (works when it is keyframed).Fri, Jan 17, 4:45 PM
Philipp Oeser (lichtwerk) updated the task description. (Show Details)
Philipp Oeser (lichtwerk) updated the task description. (Show Details)