osgAnimation.UpdateVec3fUniform是OpenSceneGraph中的一个类,用于更新vec3f类型的uniform变量。
void osgAnimation::UpdateVec3fUniform::operator()(const double simulationTime,
const osg::Vec3f& value)
simulationTime
:双精度数字,表示当前的动画时间。value
:osg::Vec3f类型的对象,表示要更新的uniform变量的值。无返回值。
osg::Uniform* uniform = new osg::Uniform("myUniform", osg::Vec3f(1, 0, 0));
osg::StateSet* stateset = geode->getOrCreateStateSet();
stateset->addUniform(uniform);
osg::ref_ptr<osgAnimation::UpdateVec3fUniform> updateUniform =
new osgAnimation::UpdateVec3fUniform(uniform);
animationManager->registerAnimationUpdateCallback(updateUniform.get());
...
// 在每个更新循环中更新uniform变量
animationManager->update(animationTime);
simulationTime
参数在实际使用时并不会被使用到,而是用于表示当前的动画时间。value
参数的类型必须要与要更新的uniform变量的类型一致。