Maniphest T71722

Alembic speed decrease for deforming geometry
Closed, Resolved

Assigned To
Sybren A. Stüvel (sybren)
Authored By
Daniel Ulrich (dulrich)
Nov 21 2019, 5:09 AM
Tags
  • BF Blender
  • Alembic
Subscribers
Daniel Ulrich (dulrich)
Steffen Dünner (SteffenD)
Sybren A. Stüvel (sybren)

Description

System Information
Operating system:MacOS Mojave 10.14.5, Kubuntu 18.04
Graphics card:Intel Iris 550 on Mac, Nvidia 1070 on linux

Blender Version
Broken: 2.82 ba1e9ae4733a but also ealrier versions of 2.81 like ed779333bb82
Worked: 2.80

Short description of error

playback of alembics with deforming geometry is at least 4-5 times slower an various systems.

Exact steps for others to reproduce the error
attached a simple blend file (abc would have been to big to attach), export as an alembic and try playback in 2.79 or 2.80 compared to newer 2.81 builds or 2.82 alpha. Sorry if it's a duplicate, didn't see it reported though.

Related Objects

Mentioned Here
T71246: Mesh normals handling in Alembic
rBba1e9ae4733a: Bevel: Custom Profile and CurveProfile Widget

Event Timeline

Daniel Ulrich (dulrich) created this task.Nov 21 2019, 5:09 AM
Jacques Lucke (JacquesLucke) added a project: Alembic.Nov 21 2019, 4:27 PM
Steffen Dünner (SteffenD) added a subscriber: Steffen Dünner (SteffenD).Nov 21 2019, 4:38 PM
Sybren A. Stüvel (sybren) claimed this task.EditedDec 5 2019, 4:44 PM
Sybren A. Stüvel (sybren) lowered the priority of this task from 90 to 50.
Sybren A. Stüvel (sybren) added a subscriber: Sybren A. Stüvel (sybren).

I took the provided blend file, applied both Subdivision Surface modifiers to be 100% sure it uses a large number of vertices, and produced a 5.6 GB Alembic file. Playing back this file is done at approximately 3.2 FPS in 2.79, and at at approximately 1.9 FPS in master. So yes, it's slower, but not 4-5x slower.

Marking the shape as Smooth and exporting with current master (so what will be 2.82) produces a 1.2 GB Alembic file (due to the new normals handling from T71246). Playing back this file is done at approximately 3.5 FPS in 2.79, and at at approximately 5.0 FPS in master.

This was tested on Kubuntu Linux 19.04 with an NVidia Geforce GTX 1080 running the NVidia drivers version 418.67.

@Daniel Ulrich (dulrich) In Blender 2.82 smooth meshes will be exported without normals, improving both file size and playback performance. Would that resolve your issue too?

Sybren A. Stüvel (sybren) lowered the priority of this task from 50 to 30.Dec 5 2019, 5:21 PM
Daniel Ulrich (dulrich) added a comment.Dec 5 2019, 9:01 PM

Yes, you're right, in this case the difference is not that big. I'm working with 4D captures a lot lately, can't upload a project file due to NDA but I made another test closer to my every day scenarios - the same cube subdivided only 7 times to 98kpolys/196k tris, resulting in a 566mb alembic file, exported from 2.80 is giving me 24 frames flat on 2.80 (I guess it's capped), and 9 frames on 2.82.

Disabling normal export and re-exporting from 2.82 halves the file size, and gives a similar frame rate, so that definitely solves the issue. Thanks for the tip!

Sybren A. Stüvel (sybren) added a comment.Dec 6 2019, 10:42 AM

Disabling normal export and re-exporting from 2.82 halves the file size

You don't even need to disable exporting normals ;-) 2.82 will do that automatically for all smooth-shaded meshes, as "no normals" is interpreted as "smooth" by most Alembic-reading applications.

Daniel Ulrich (dulrich) added a comment.Dec 6 2019, 11:22 AM

Good to know :) I can't remember when I had the need to use custom normals or normals at all, working in feature VFX for quite some time now.

I was editing alembics coming from maya (2016), really good to know how to fix the playback issue.

As far as I'm concerned this ticket can be closed, 24 frames all across the board here.

Sybren A. Stüvel (sybren) changed the task status from Unknown Status to Resolved.Dec 6 2019, 1:50 PM

Thanks for getting back so quickly :)