Animated alembic curves dont update on render #58704

Closed
opened 2018-12-04 12:28:11 +01:00 by mantissa · 55 comments

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

Blender Version
Broken: 2.80 63ac7c799c

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

alembic-render.zip

**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 [alembic-render.zip](https://archive.blender.org/developer/F5810162/alembic-render.zip)
Author

Added subscriber: @Mantissa

Added subscriber: @Mantissa

#86802 was marked as duplicate of this issue

#86802 was marked as duplicate of this issue

#76901 was marked as duplicate of this issue

#76901 was marked as duplicate of this issue

#49447 was marked as duplicate of this issue

#49447 was marked as duplicate of this issue

#60936 was marked as duplicate of this issue

#60936 was marked as duplicate of this issue

#64424 was marked as duplicate of this issue

#64424 was marked as duplicate of this issue

#65526 was marked as duplicate of this issue

#65526 was marked as duplicate of this issue

#64790 was marked as duplicate of this issue

#64790 was marked as duplicate of this issue
Member

Added subscriber: @JacquesLucke

Added subscriber: @JacquesLucke
Sergey Sharybin was assigned by Jacques Lucke 2018-12-04 12:36:35 +01:00
Member

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

I can reproduce that. Sounds depsgraph related, because the Alembic import itself is working fine.
Sergey Sharybin removed their assignment 2018-12-04 14:22:42 +01:00

Added subscribers: @dr.sybren, @Sergey

Added subscribers: @dr.sybren, @Sergey

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 @dr.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.

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 @dr.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.

Added subscriber: @NizarAmous

Added subscriber: @NizarAmous

Added subscriber: @amandas

Added subscriber: @amandas

Added subscribers: @akifdur, @brecht

Added subscribers: @akifdur, @brecht

Added subscribers: @DanielBystedt, @ZedDB

Added subscribers: @DanielBystedt, @ZedDB

Added subscribers: @AlexanderWeide, @kevindietrich

Added subscribers: @AlexanderWeide, @kevindietrich

I suspect that solving this properly requires #69046.

I suspect that solving this properly requires #69046.
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

@dr.sybren: will tag as Known Issue (or is Design preferred?)

@dr.sybren: will tag as `Known Issue` (or is `Design` preferred?)

Added subscriber: @steffenk

Added subscriber: @steffenk

Added subscriber: @DimaM

Added subscriber: @DimaM

Closed as duplicate of #76901

Closed as duplicate of #76901

Changed status from 'Duplicate' to: 'Confirmed'

Changed status from 'Duplicate' to: 'Confirmed'

Added subscribers: @AtomP, @dfelinto

Added subscribers: @AtomP, @dfelinto

Added subscriber: @Robin-Hawkes

Added subscriber: @Robin-Hawkes

Added subscriber: @thuskodesign

Added subscriber: @thuskodesign
Member

Added subscriber: @MaskerGladys

Added subscriber: @MaskerGladys

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
image.png

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 ![image.png](https://archive.blender.org/developer/F10218411/image.png)

Added subscriber: @dr_formalyst

Added subscriber: @dr_formalyst

@NizarAmous 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!

@NizarAmous 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!

Added subscriber: @andre1

Added subscriber: @andre1

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!

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 @andre1 this is good to know (although in my case I'm exporting from Houdini so this is not an option).

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

Added subscriber: @Dabreiss

Added subscriber: @Dabreiss

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

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

In #58704#1283732, @andre1 wrote:
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

> In #58704#1283732, @andre1 wrote: > 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

Added subscriber: @brurpo

Added subscriber: @brurpo

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

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

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

In #58704#1316854, @brurpo wrote:
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:
0001-0100.mp4

> In #58704#1316854, @brurpo wrote: > 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: [0001-0100.mp4](https://archive.blender.org/developer/F12897082/0001-0100.mp4)

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

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

Added subscriber: @ahmed.hindy96

Added subscriber: @ahmed.hindy96

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

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

In #58704#1334168, @ahmed.hindy96 wrote:
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.

> In #58704#1334168, @ahmed.hindy96 wrote: > 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 : * [D14484: Cleanup: Alembic, use a structure to pass parameters](https://archive.blender.org/developer/D14484) * [D11591: Alembic: import arbitrary attributes](https://archive.blender.org/developer/D11591) * [D11592: Alembic/USD: use geometry sets to import data](https://archive.blender.org/developer/D11592) 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

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

Added subscriber: @BlenderSushiGuy

Added subscriber: @BlenderSushiGuy

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....

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.

There is no need to test, you can check the status of [D11592: Alembic/USD: use geometry sets to import data](https://archive.blender.org/developer/D11592), once this is closed and marked as committed, then you can test.

Removed subscriber: @DimaM

Removed subscriber: @DimaM

Added subscriber: @paulgolter

Added subscriber: @paulgolter

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

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](https://archive.blender.org/developer/D11592) is not merged yet, checkout this thread: [how-to-render-alembic-curves-hairs-from-houdini-with-this-hack](https://devtalk.blender.org/t/how-to-render-alembic-curves-hairs-from-houdini-with-this-hack/24945)

Added subscriber: @amasun

Added subscriber: @amasun

In #58704#1283732, @andre1 wrote:
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!

I use your methord, it works at least. Thanx

> In #58704#1283732, @andre1 wrote: > 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! I use your methord, it works at least. Thanx
Philipp Oeser removed the
Interest
Pipeline, Assets & IO
label 2023-02-10 08:54:23 +01:00

Similar issue when importing animated curves through USD: when changing curve settings, the viewport drops to the start frame; render any frame always renders first.

Windows 10
Blender 3.6.1

Similar issue when importing animated curves through USD: when changing curve settings, the viewport drops to the start frame; render any frame always renders first. Windows 10 Blender 3.6.1
Blender Bot added
Status
Resolved
and removed
Status
Confirmed
labels 2024-02-28 03:02:54 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
22 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#58704
No description provided.