查看: 809|回复: 3

ParallelSplitShadowMap问题求助

[复制链接]

该用户从未签到

发表于 2014-8-22 16:19:53 | 显示全部楼层 |阅读模式
本帖最后由 abc-osg 于 2014-8-22 16:21 编辑

//标识阴影接收对象
const int ReceivesShadowTraversalMask = 0x1;
//标识阴影投影对象
const int CastsShadowTraversalMask = 0x2;       
mls = new osg:: LightSource();
       
        mls->getLight()->setPosition(osg::Vec4(0,1,-0.5,0));
        osg::Vec3 lightDir(0,1,-0.5);
        lightDir.normalize();
        mls->getLight()->setDirection(lightDir);
        mls->getLight()->setAmbient(osg::Vec4(0.2,0.2,0.2,1.0));
        mls->getLight()->setDiffuse(osg::Vec4(0.8,0.8,0.8,1.0));
        mRoot->addChild(mls);

        //创建一个阴影节点,并标识接收对象和投影对象
        mShadowedScene = new osgShadow::ShadowedScene();
        mShadowedScene->setReceivesShadowTraversalMask(ReceivesShadowTraversalMask);
        mShadowedScene->setCastsShadowTraversalMask(CastsShadowTraversalMask);

        //pssm阴影初始化
        osg::ref_ptr<osgShadow:: ParallelSplitShadowMap> psst = new osgShadow:: ParallelSplitShadowMap(0,3);
        psst->setTextureResolution(1024);
        psst->setPolygonOffset(osg::Vec2f(1.0,1.0));
        mShadowedScene->setShadowTechnique(psst);

    mShadowedScene->addChild(mls);  
        mShadowedScene->addChild(mRoot);//和上行顺序调整也不对
       
       
    m_Root->addChild(mShadowedScene.get());//m_Root是场景根节点
  
   模型都添加在mRoot下
出现如下画面:
问题在哪儿呀?
光照.jpg

该用户从未签到

 楼主| 发表于 2014-8-28 10:50:29 | 显示全部楼层
咋没有人回答我问题

该用户从未签到

发表于 2014-9-1 23:58:14 | 显示全部楼层
看不出啥问题

该用户从未签到

 楼主| 发表于 2014-9-2 11:27:50 | 显示全部楼层
是不是顺序不对啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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