查看: 1124|回复: 2

淡入淡出问题

[复制链接]

该用户从未签到

发表于 2011-4-1 16:39:07 | 显示全部楼层 |阅读模式
class FadeCallback: public osg::NodeCallback
{
public:
    FadeCallback()
   {
    _motion=new osgAnimation::InOutCubicMotion;
   }
   virtual void operator()(osg::Node*node,osg::NodeVisitor*nv)
   {
    osg::Geode*geode=dynamic_cast<osg::Geode*>(node);
    if(geode)
    {
      osg::ShapeDrawable*shape=dynamic_cast<osg::ShapeDrawable*>(geode->getDrawable(0));
      if(shape)
        {
          _motion->update(0.005);
          float alpha=_motion->getValue();
    std::cout<<"alpha="<<alpha<<std::endl;
    if(alpha>0.0)alpha=2-alpha;
    shape->setColor(osg::Vec4(1.0,1.0,1.0,alpha));
        }
    }
     traverse(node,nv);
   }
protected:
      osg::ref_ptr<osgAnimation::InOutCubicMotion>_motion;
};

请问我用这个教程上的例子做图片的渐变,我做了两个平板几何体,把两幅图片分别贴到这两个平板上,通过回调这段程序实现这两幅图的淡入淡出,即第一幅图逐渐消失的时候,第二幅图逐渐出现,现在通过调整—motion->update(),也实现不了这个效果啊,两个图片同时出现,请问应该怎样解决啊?谢谢

该用户从未签到

发表于 2011-4-2 08:43:55 | 显示全部楼层
您完全没有给出自己调整的代码来,我判断不了什么

该用户从未签到

发表于 2011-4-5 09:29:57 | 显示全部楼层
应该动态刷新drawable的绘制
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表