Page MenuHome

Animated alembic curves dont update on render
Confirmed, NormalPublicKNOWN ISSUE

Description

System Information
Operating system: Xubuntu 18.04
Graphics card: Titan X (Pascal)

Blender Version
Broken: 2.80 63ac7c799c8

Short description of error
Imported alembic objects with animated hair strands render incorrectly.
The cache doesn't get read properly and no updates happen in between frames when rendering, resulting in a render where the animation is stuck on the first frame of the cache.
Problem persists between Eevee and Cycles. Regular mesh based caches work fine, this only seems to affect imported hair/curves.
Tried animating the frame parameter too, as well as adding a driver, but it doesn't help. Every render is static on the first frame of the cache.

Exact steps for others to reproduce the error

  • Create hair system
  • Animate said hair system (dynamics / forces)
  • Export Hair to Alembic
  • Import Alembic with hair animation
  • Hair animation doesn't update on render

Revisions and Commits

Event Timeline

Jacques Lucke (JacquesLucke) lowered the priority of this task from 90 to 50.

I can reproduce that. Sounds depsgraph related, because the Alembic import itself is working fine.

This isn't a dependency graph problem..

The actual issue is caused by the following facts:

  • Bevel is only allowed on pre-tessellated curve, while it is still guaranteed to have curve twist and other properties.
  • Mesh sequence cache is a constructive modifier, which runs on post-tessellation state.

This makes it so bevel is never affected by the curve read from the cache. It *kind of* appeared to be working in 2.79 because mesh cache modifier was modifying object's splines, which is not only going against all designs we have :( but also was causing 1 frame delay during playback.

Now, with Copy-on-Write in place, cache modifier modifies copied version which gets tossed away after frame finished rendering.

The only proper and reliable solution i can think of here is to support real constructive modifiers for curves, which will operate on splines, and give splines back.

Maybe @Sybren A. Stüvel (sybren) will have time to look into proper solution one day. But for now unassigning from myself, since is unlikely i'll be handling this myself in the nearest future.

Philipp Oeser (lichtwerk) changed the subtype of this task from "Report" to "Known Issue".Feb 7 2020, 3:40 PM

@Sybren A. Stüvel (sybren): will tag as Known Issue (or is Design preferred?)

Hello, i just found a workaround for anyone needing this feature, I'm being able to render curves exported from houdini, im using the alembic as input in geonodes and then rendering the geo node object, but i had a few crashes but i could render a frame sequences with this setup

@nizar amous (zinar) thanks for the solution, however, as of version 3.0.0 2021-11-08 this workaround is no longer working. are there any other possible workarounds anyone is aware of? thanks!

I was having the same problem and the solution I found was export it from blender as alembic and check the option "Curves as Mesh" and reimported it and working nice!
Hope someone can found this solution too!

Thanks @Andreu Pellisa (andre1) this is good to know (although in my case I'm exporting from Houdini so this is not an option).

uuuh, really hope this issue is not being forgotten,, unfortunately I have to bring objects back and forth from and to Maya (I know, I'm a traiter, hahaha) and with this limitation, unfortunately I can't use blender in certain cases

I was having the same problem and the solution I found was export it from blender as alembic and check the option "Curves as Mesh" and reimported it and working nice!
Hope someone can found this solution too!

hey, when I try to export curve as mesh, it only exports the vertices and now edge lines. Really need this to get working, would appreciate any help big time

Is this really forgotten for over four years?
This is a huge problem

I very much agree on this. Blender undergoes this massive growth, which is plane amazing and thankfully due to it's versatility there is always a workaround for pretty much anything. In case of alembic curves, I cached them out as pc2 and added thickness via geometry nodes post mesh cache modifier. However fundamentals like this maybe shouldn't be left behind imho

Is this really forgotten for over four years?
This is a huge problem

A new implementation of curves objects is currently ongoing, which will among other things allow to properly support Alembic I/O. The current plan is to get this ready for Blender 3.2.

As a teaser, here's a final render with the new implementation of the file in this report:

That is amazing news, thank you very much for the update

any updates on this? any branch build to try it on?

any updates on this? any branch build to try it on?

There is no branch for it, but if you would like to try you can apply the following patches in order :

Specific details are in the patches descriptions.

yeah I barely can use python lol, I will wait till the 3 patches get merged into master or a branch of their own

I can confirm 22 April 2022, the Alembic Curve bake out still does not animate or moving forward during render using Blender 3.1.2 and 3.2. Will wait for few days / next update....

There is no need to test, you can check the status of D11592: Alembic/USD: use geometry sets to import data, once this is closed and marked as committed, then you can test.

Hey for those looking for a hacky workaround to get animated cuves in to Blender from a software package such as Houdini as long as D11592 is not merged yet, checkout this thread: how-to-render-alembic-curves-hairs-from-houdini-with-this-hack