diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2020-05-12 16:06:29 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2020-05-12 16:07:09 +0300 |
commit | 94cbfb71bcf4f0499301f7c6f201124d8740cacf (patch) | |
tree | d717d5c465646cd7bcd73054b4fcf7b24207ea96 /source/blender/io/alembic | |
parent | 65574463fa2d31dc912cf886649c62a7d0ad2450 (diff) |
Fix T76132: Can't import Alembic with changing UVs
In the Alembic importer, the animation of UVs and normals was
overlooked; when the mesh geometry is not animated, the entire mesh was
considered constant.
T76132 concerns both the exporting and importing of changing UVs. This
commit fixes the importing.
Diffstat (limited to 'source/blender/io/alembic')
-rw-r--r-- | source/blender/io/alembic/intern/abc_reader_mesh.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/blender/io/alembic/intern/abc_reader_mesh.cc b/source/blender/io/alembic/intern/abc_reader_mesh.cc index b85bce3e10a..b69a5301d76 100644 --- a/source/blender/io/alembic/intern/abc_reader_mesh.cc +++ b/source/blender/io/alembic/intern/abc_reader_mesh.cc @@ -482,6 +482,19 @@ bool AbcMeshReader::valid() const return m_schema.valid(); } +/* Specialisation of has_animations() as defined in abc_reader_object.h. */ +template<> bool has_animations(Alembic::AbcGeom::IPolyMeshSchema &schema, ImportSettings *settings) +{ + if (settings->is_sequence || !schema.isConstant()) { + return true; + } + + IV2fGeomParam uvsParam = schema.getUVsParam(); + IN3fGeomParam normalsParam = schema.getNormalsParam(); + return (uvsParam.valid() && !uvsParam.isConstant()) || + (normalsParam.valid() && !normalsParam.isConstant()); +} + void AbcMeshReader::readObjectData(Main *bmain, const Alembic::Abc::ISampleSelector &sample_sel) { Mesh *mesh = BKE_mesh_add(bmain, m_data_name.c_str()); |