diff --git a/src/osgAnimation/RigTransformHardware.cpp b/src/osgAnimation/RigTransformHardware.cpp index 98d374fcf..4158c1d46 100644 --- a/src/osgAnimation/RigTransformHardware.cpp +++ b/src/osgAnimation/RigTransformHardware.cpp @@ -255,11 +255,11 @@ bool RigTransformHardware::init(RigGeometry& geom) } program->addShader(_shader.get()); - osg::ref_ptr ss = new osg::StateSet; + osg::ref_ptr ss = geom.getOrCreateStateSet(); ss->addUniform(getMatrixPaletteUniform()); ss->addUniform(new osg::Uniform("nbBonesPerVertex", getNumBonesPerVertex())); ss->setAttributeAndModes(program.get()); - geom.setStateSet(ss.get()); + _needInit = false; return true; }