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.
This commit is contained in:
Sybren A. Stüvel 2020-05-12 15:06:29 +02:00
parent 65574463fa
commit 94cbfb71bc
Notes: blender-bot 2023-02-14 00:06:52 +01:00
Referenced by issue #76132, Can't import or export Alembic with changing UVs
1 changed files with 13 additions and 0 deletions

View File

@ -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());