diff --git a/components/nifosg/controller.cpp b/components/nifosg/controller.cpp index 4dfa4b3041..93c1de89a1 100644 --- a/components/nifosg/controller.cpp +++ b/components/nifosg/controller.cpp @@ -235,7 +235,12 @@ void GeomMorpherController::update(osg::NodeVisitor *nv, osg::Drawable *drawable val = interpKey((*it)->mKeys, input); val = std::max(0.f, std::min(1.f, val)); - morphGeom->setWeight(i, val); + osgAnimation::MorphGeometry::MorphTarget& target = morphGeom->getMorphTarget(i); + if (target.getWeight() != val) + { + target.setWeight(val); + morphGeom->dirty(); + } } }