[osg-users] How does shadow technic work if geometry shaders are in use

Werner Modenbach Werner.Modenbach at texion.eu
Mon Jun 8 05:20:46 PDT 2015


Sorry, was on a business trip for a while.
Here is my code (shortened a little):

osg::Group*rootNode=newosg::Group();
view->setSceneData(rootNode);

shadowedScene=newosgShadow::ShadowedScene;
shadowedScene->setReceivesShadowTraversalMask(ReceivesShadowTraversalMask);
shadowedScene->setCastsShadowTraversalMask(CastsShadowTraversalMask);
rootNode->addChild(shadowedScene.get());

objectSwitch=newosg::Switch;
shadowedScene->addChild(objectSwitch);


lightSource=newosg::LightSource;
lightSource->setLight(myLight);
lightSource->setReferenceFrame(osg::LightSource::ABSOLUTE_RF);
lightSource->setLocalStateSetModes(osg::StateAttribute::ON);
shadowedScene->addChild(lightSource.get());


osg::StateSet*stateset=objectSwitch->getOrCreateStateSet();

// setting uniforms etc. here

osg::Program*program=newosg::Program();
stateset->setAttribute(program);

program->addShader(Cl_ShaderGen::getShader(osg::Shader::VERTEX,forceGL3Mode, 
...));program->addShader(Cl_ShaderGen::getShader(osg::Shader::GEOMETRY,forceGL3Mode, 
...));program->addShader(Cl_ShaderGen::getShader(osg::Shader::FRAGMENT,forceGL3Mode, 
...));
view->getCamera()->getGraphicsContext()->getState()->setUseModelViewAndProjectionUniforms(forceGL3Mode);
view->getCamera()->getGraphicsContext()->getState()->setUseVertexAttributeAliasing(forceGL3Mode);


If I use GL2 mode everything works like expected.
In GL3 mode without shadow technique everything works fine (using 
geometry shader)
In GL3 mode assigning a shadow technique doesn't change anything i.e. no 
shadow appears.
If I assign the schaders to the state set of shadowedScene in GL3 mode 
without shadow technique
everything appears the normal way but when assigning a shadow technique 
geometry shaders
don't do their work any more.
So my guess is that shadow technique just replaces the shaders.

Is my approach wrong? Do I do something in a non standard way?

Many thanks for hints and help.

- Werner -



Am 29.05.2015 um 18:53 schrieb Trajce Nikolov NICK:
> Hard to say without seeing your code .... I have modified shaders for 
> the LSPSM. Can you share a sample app ?
>
> On Fri, May 29, 2015 at 6:38 PM, Werner Modenbach 
> <Werner.Modenbach at texion.eu <mailto:Werner.Modenbach at texion.eu>> wrote:
>
>     Hi Nick,
>
>     I'm using LightSpacePerspective  shadow technique as well.
>     But I set the shaders only inside the scene graph where reqired.
>     Do I have to set them anywhere else?
>     My graph looks like that:
>     *---------------
>
>        *                                               |  RootNode   |
>
>        *                                               ---------------
>
>        *                                                /             \
>
>        *                                         ---------------     ---------------------
>
>        *                                         |  ShadowScene  |     |evtl.  PPU-Prozessor|
>
>        *                                         ---------------     ---------------------
>
>        *                                         /              \
>
>        *                                 ---------------      ---------------
>
>        *                                 |   Switchnode  |      |  LightSource  |
>
>        *                                 ---------------      ---------------
>        *                                  /           \\\
>
>
>
>     Am 29.05.2015 um 18:16 schrieb Trajce Nikolov NICK:
>>     Hi Werner,
>>
>>     I am doing the same and using the LightSpacePerspective shadow
>>     techinque. In your program you have to set your vertex and
>>     fragment shaders as well, and it will be picked up correctly if
>>     you set the masks for receiving/cast shadows .... So it should
>>     work. As long as they are part of the top ShadowedScene
>>
>>     Nick
>>
>>
>>     Nick
>>
>>     On Fri, May 29, 2015 at 5:56 PM, Werner Modenbach
>>     <Werner.Modenbach at texion.eu <mailto:Werner.Modenbach at texion.eu>>
>>     wrote:
>>
>>         Hi all,
>>
>>         My scene contains many objects, which are created by geometry
>>         shaders.
>>         So no vertices are created outside the graphics card for
>>         those objects.
>>         So I use
>>             state->setUseVertexAttributeAliasing(true)
>>         and
>>             state->setUseModelViewAndProjectionUniforms(true)
>>
>>         Is it possible using a shadow technique in this case? If I'm
>>         right the shadow technique installs it's own shaders.
>>
>>         Thanks for any hint.
>>
>>         - Werner -
>>
>>         _______________________________________________
>>         osg-users mailing list
>>         osg-users at lists.openscenegraph.org
>>         <mailto:osg-users at lists.openscenegraph.org>
>>         http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>
>>
>>     -- 
>>     trajce nikolov nick
>>
>>
>>     _______________________________________________
>>     osg-users mailing list
>>     osg-users at lists.openscenegraph.org  <mailto:osg-users at lists.openscenegraph.org>
>>     http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>     -- 
>     *TEXION Software Solutions, Rotter Bruch 26a, D-52068 Aachen*
>     Phone: +49 241 475757-0
>     Fax: +49 241 475757-29 <tel:%2B49%20241%20475757-29>
>     Web: http://texion.eu
>     eMail: info at texion.eu <mailto:info at texion.eu>
>
>     _______________________________________________
>     osg-users mailing list
>     osg-users at lists.openscenegraph.org
>     <mailto:osg-users at lists.openscenegraph.org>
>     http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
>
>
> -- 
> trajce nikolov nick
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

-- 
*TEXION Software Solutions, Rotter Bruch 26a, D-52068 Aachen*
Phone: +49 241 475757-0
Fax: +49 241 475757-29
Web: http://texion.eu
eMail: info at texion.eu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20150608/8e46bb9d/attachment-0002.htm>


More information about the osg-users mailing list