Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSybren A. Stüvel <sybren@blender.org>2020-05-12 16:06:29 +0300
committerSybren A. Stüvel <sybren@blender.org>2020-05-12 16:07:09 +0300
commit94cbfb71bcf4f0499301f7c6f201124d8740cacf (patch)
treed717d5c465646cd7bcd73054b4fcf7b24207ea96
parent65574463fa2d31dc912cf886649c62a7d0ad2450 (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.
-rw-r--r--source/blender/io/alembic/intern/abc_reader_mesh.cc13
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());