diff --git a/libraries/fbx/src/GLTFSerializer.cpp b/libraries/fbx/src/GLTFSerializer.cpp index cd2e4e2720..337c9d7f70 100755 --- a/libraries/fbx/src/GLTFSerializer.cpp +++ b/libraries/fbx/src/GLTFSerializer.cpp @@ -1593,11 +1593,15 @@ bool GLTFSerializer::buildGeometry(HFMModel& hfmModel, const hifi::VariantHash& generateTargetData(target.values.value((QString) "POSITION"), weight, vertices); } - auto blendshapeIndicesCount = blendshape.indices.count(); + if (blendshape.indices.size() < prevMeshVerticesCount + vertices.size()) { + blendshape.indices.resize(prevMeshVerticesCount + vertices.size()); + blendshape.vertices.resize(prevMeshVerticesCount + vertices.size()); + blendshape.normals.resize(prevMeshVerticesCount + vertices.size()); + } for (int i = 0; i < vertices.size(); i++) { - blendshape.indices.push_back(blendshapeIndicesCount + i); - blendshape.vertices.push_back(vertices.value(i)); - blendshape.normals.push_back(normals.value(i)); + blendshape.indices[prevMeshVerticesCount + i] = prevMeshVerticesCount + i; + blendshape.vertices[prevMeshVerticesCount + i] += vertices.value(i); + blendshape.normals[prevMeshVerticesCount + i] += normals.value(i); } }