Hi again,

here I managed to make some videos. The first one is without LOD in the
scene the second one is with LOD in the scene

Thanks a lot for any hint!

Nick

https://dl.dropboxusercontent.com/u/91101321/ll-1.mov
https://dl.dropboxusercontent.com/u/91101321/ll-2.mov

On Wed, Sep 24, 2014 at 2:28 PM, Trajce Nikolov NICK <
[email protected]> wrote:

> Hi Robert, Community,
>
> this will be hard to be described I guess, but I will try. Will make a
> video as well later.
>
> I am doing something with lights and in a CullCallback I do computation of
> some light attribs for a shader. This something is splitting the
> computation between the CPU and the GPU for lighting purposes.. And I am
> doing sort of my LOD within this CullCallback. so the lights are not active
> after a distance. And it works great but my cull time is really high so I
> am about to optimize it with an LOD  (just a try). My scenegraph is like:
>
> root->MatrixTransform->LightSource
>
> and again it works ok as long as I add LOD between the transform and the
> lightsource.
>
> Honestly, I have no clue what is going on. The final result is as I am
> getting close to the LOD switch out distance the lights are changing
> position, intensity and they fade away.instead of just switch out on that
> distance.
>
> Since I am using the osgUtil::PositionalStateContainer::AttrMatrixList
> from the currentRenderStage (snippet bellow) and I am using the matrices
> from there for the osg::Light attributes something is telling me that these
> matrices are somewhat wrong when LOD is in the scene path. But again this
> is only guessing
>
> I am aware that based on written above it is hard to give a hint and I had
> big doubts to post this really, but just in case maybe someone will have an
> idea.
>
> Thanks a bunch as always
>
> Nick
>
> snippet from the cullcallback:
>
> virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
>   {
>     osgUtil::CullVisitor * cv = dynamic_cast<osgUtil::CullVisitor*>(nv);
>     ....
>      osgUtil::PositionalStateContainer::AttrMatrixList &aml =
> originalRenderStage->getPositionalStateContainer()->getAttrMatrixList();
>      ....
>      // here I iterate over the list and after I use the osg::Light attrib
> with its associated matrix to compute stuff for the shader
>      ....
>
>
> --
> trajce nikolov nick
>



-- 
trajce nikolov nick
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to