com.unity.formats.alembic icon indicating copy to clipboard operation
com.unity.formats.alembic copied to clipboard

Ability to cache results? Very slow performance

Open hybridherbst opened this issue 7 years ago • 2 comments

The alembic plugin works in principle, but performance for large files is really slow (5-10 fps).

I do understand that playback might not be smooth on the first run, but I would like to see an option to keep mesh results in RAM, because right now it's pretty difficult to play back large files since it seems all meshes are re-uploaded every frame.

Deleting objects from the scene results in these meshes still being calculated, so there is no current way to optimize performance than to split/optimize the alembic file itself, which I'd like to avoid.

  • .abc file or project data that can reproduce the issue I can share that in private if you send me a mail address / a way to transfer it non-publicly. It's a 500MB abc file with 60 frames.
  • version of AlembicForUnity you are using 20180205

hybridherbst avatar Jan 21 '19 08:01 hybridherbst

Sorry for the late reply. We are aware of the performance problems with alembics. I cannot give you a timeline however as to when they will be fixed. For now I think the best you can do is optimize it by hand unfortunately.

clusty avatar Feb 20 '19 15:02 clusty

Thanks for the reply.

I ended up writing a brute-force Mesh cache script that basically buffers all generated Alembic meshes and, if that specific frame has been used before, just uses the buffered mesh instead of the Alembic file. This is super unoptimized though as it saves a full copy of the whole mesh each frame, even if the object is static.

(you can see the caching in action here: https://herbst.itch.io/jumping-rabbit - basically with the alembic plugin performance is somewhere around 1-2fps, with caching it goes back to 60 but obviously eats a ton of RAM)

hybridherbst avatar Feb 21 '19 14:02 hybridherbst