Hi Zoltan,

There is osgShadow, but it's rather short on examples. Or may-be I haven't seen them ?

The example is called osgshadow... ;-)

In short, it's pretty simple:

1. Your root node (or the root node of the subgraph which you want to have shadows) should be an osgShadow::ShadowedScene (subclass of osg::Group).

2. Instantiate the shadow technique you want (for example osgShadow::ShadowMap) and set it as the shadow technique on your shadowed scene (scene->setShadowTechnique(...)).


In your case, for an airplane flying over a large terrain, if you use osgShadow::ShadowMap you will have lots of shadow map aliasing. For now, ShadowMap is not view dependent, so it uses the scene bounds (or the light frustum for a spot light), which will be very large in your case. As a first step, you could disable shadows for everything but your airplane (for example, shadowedScene->setCastsShadowTraversalMask(0x01) and then give all your objects but your airplane a ~0x01 node mask). Perhaps others will have better suggestions.

Keep in mind that osgShadow::ShadowVolume does not really work yet (at least I haven't seen it work, maybe it does in some cases). So I would use ShadowMap with the workaround above.

Hope this helps,

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

Reply via email to