查看: 1265|回复: 2

ParallelSplitShadowMap实现光照阴影

[复制链接]

该用户从未签到

发表于 2013-10-28 12:22:23 | 显示全部楼层 |阅读模式
本帖最后由 abc-osg 于 2013-10-28 12:24 编辑

谁使用ParallelSplitShadowMap实现光照阴影过。我的不知道哪儿设置有问题实现不了
下面是代码
osg::ref_ptr<osgShadow:: ShadowedScene> mShadowedScene;
osg::ref_ptr<osg:: LightSource> mls;
mls = new osg:: LightSource();
       
        mls->getLight()->setPosition(osg::Vec4(0,-1,1,0));//无穷远
        osg::Vec3 lightDir(0,-1,1);
        lightDir.normalize();
        mls->getLight()->setDirection(lightDir);
        mls->getLight()->setAmbient(osg::Vec4(1.0,0.8,1.1,0));
        mls->getLight()->setDiffuse(osg::Vec4(1.0,1.0,0.8,1.0));
        mRoot->addChild(mls);

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

         

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

        mShadowedScene->addChild(mRoot);

            
             mViewer->setSceneData(mShadowedScene.get());//
           
            显示只有光照,没有见阴影。

该用户从未签到

发表于 2013-11-1 09:52:53 | 显示全部楼层
您可以参看osgshadow例子

该用户从未签到

 楼主| 发表于 2013-11-2 22:09:44 | 显示全部楼层
已经实现 谢谢大家
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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