Hello Robert et al,
Wojtek and I have been discussing on and off list about making shadow
mapping view-dependent. Wojtek says he has a few implementations but it
is not possible for him to release them at the moment. On my side, I
also have something working pretty well (thanks Wojtek!) but I have one
problem.
osgShadow::ShadowMap uses two member variables, _camera and _texGen.
When the viewer is running in multithreaded mode, with multiple views,
and the shadow mapping is made view-dependent, the views' threads
compete for these variables, so the shadows in both views flicker
between one view's shadows and the other's. Weird effect, but not what
we want :-)
What would you suggest to fix this issue? I can see two possibilities,
one of which is not viable IMHO, and the other which I wouldn't know how
to implement. Please mention any others that might be better.
- Add a mutex to control access to the variables. The problem here is
that the shadow map is computed in the cull stage, and drawn in the draw
stage, so the mutex would need to be held across both stages. I imagine
that would mean that only one shadow map could be updated each frame -
not a good solution.
- Have one camera and one texgen per thread/view. How would I do this?
Maybe use a map indexed by the view's main camera (pointer), so if
there's only one view it'll be ok, but if there are multiple views we
create and get the correct camera and texgen for the view's camera?
Thanks in advance,
J-S
--
______________________________________________________
Jean-Sebastien Guay [EMAIL PROTECTED]
http://www.cm-labs.com/
http://whitestar02.webhop.org/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org