osgAnimation.UpdateVec4fUniform
根据动画数据更新 Vec4f
类型的 Uniform 值。
#include <osgAnimation/Animation>
#include <osgAnimation/UpdateMatrixTransform>
#include <osgAnimation/UpdateVec4fUniform>
// 创建一个 Vec4f 类型的 Uniform 对象
osg::ref_ptr<osg::Uniform> myUniform = new osg::Uniform("myUniform", osg::Vec4f(0.0f, 0.0f, 0.0f, 1.0f));
// 创建动画数据并设置目标 Uniform 及其属性名称
osg::ref_ptr<osgAnimation::Vec4fLerpChannel> myChannel = new osgAnimation::Vec4fLerpChannel();
myChannel->setTargetName("myUniform");
myChannel->setTargetAttribute("Vec4");
// 创建动画更新节点,并将其添加到场景图中
osg::ref_ptr<osg::Group> myGroup = new osg::Group();
osg::ref_ptr<osgAnimation::UpdateVec4fUniform> myUpdater = new osgAnimation::UpdateVec4fUniform();
myUpdater->addChannel(myChannel); // 添加动画数据
myUpdater->setUniform(myUniform.get()); // 设置目标 Uniform
myGroup->addChild(myUpdater.get()); // 添加更新节点到场景图中
osg::Object
osg::NodeVisitor
osgAnimation::AnimationUpdateVisitor
osgAnimation::AnimationManagerBase::UpdateCallback
osgAnimation::UpdateUniformBase
osgAnimation::UpdateVec4fUniform
virtual void operator()(osg::Uniform* uniform);
根据动画数据更新目标 Uniform 的值。
uniform
目标 Uniform 对象。