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:
2020-05-12 15:06:29 +02:00
parent 65574463fa
commit 94cbfb71bc

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