This fixes 4 bugs all conspiring to make the referenced SubD scenario quite broken: - When manually creating a MeshSequenceCache, the reading of edge and vertex crease data was skipped. Fixed by reading crease data inside the common `read_mesh` method. - When importing an Alembic with animated edge or vertex crease data, a MeshSequenceCache modifier was not being added to the object. This was due to not checking the relevant crease properties and required adding a specialized `has_animations` function. - When importing animated vertex crease data, a duplicate `vertex_crease` attribute would be created, breaking the animation. Fixed by using the attribute API rather than custom data. - The MeshSequenceCache scenario would call into the Alembic Mesh reader which ended up referencing deallocated stack memory for the ImportSettings. In release builds this would cause sporadic failures because the value of `blender_archive_version_prior_44` would be random. There was already a very old TODO for this and we finally really needed to address it. A new test was added which exports animated creases on two meshes and re-imports them back in. It verifies that each mesh gets a MeshSequenceCache modifier added and also ensures the values of the creases are correct for all frames. Pull Request: https://projects.blender.org/blender/blender/pulls/141646
4 lines
130 B
Plaintext
4 lines
130 B
Plaintext
version https://git-lfs.github.com/spec/v1
|
|
oid sha256:9d9613c315deb164323eb6eb74cae62119fad46d64b0ea950331afdd4efa7e9c
|
|
size 97884
|