diff options
author | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2021-03-12 01:51:54 +0300 |
---|---|---|
committer | Kévin Dietrich <kevin.dietrich@mailoo.org> | 2021-03-12 02:15:16 +0300 |
commit | 7a028d5b997e6f0fd2da3d6446943d2b9059f9d9 (patch) | |
tree | 4b78e8ae7903165e6fbd46e0fe57a1473dc3d55f | |
parent | 62e2fdf40b6fa19e10f9aea5ee1a7344b2e9e88f (diff) |
Alembic procedural: fix missing attribute update
We need to explicitely tag the Attribute and AttributeSet as modified if
we change or add/remove data. This is more of a bandaid until attributes
handling is refactored to be able to reuse routines from the Attribute
API.
-rw-r--r-- | intern/cycles/render/alembic.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/intern/cycles/render/alembic.cpp b/intern/cycles/render/alembic.cpp index abe4dea0b3e..1af38aa247e 100644 --- a/intern/cycles/render/alembic.cpp +++ b/intern/cycles/render/alembic.cpp @@ -1284,6 +1284,7 @@ static void update_attributes(AttributeSet &attributes, CachedData &cached_data, } memcpy(attr->data(), attr_data->data(), attr_data->size()); + attr->modified = true; } /* remove any attributes not in cached_attributes */ @@ -1291,6 +1292,7 @@ static void update_attributes(AttributeSet &attributes, CachedData &cached_data, for (it = attributes.attributes.begin(); it != attributes.attributes.end();) { if (cached_attributes.find(&(*it)) == cached_attributes.end()) { attributes.attributes.erase(it++); + attributes.modified = true; continue; } |