03/01/10 12:52:44 (4 years ago)

From Wojciech Lewandowski, "Here comes a list of small fixes in StandardShadowMap? and derived classes affecting LispSM techniques. Changes made against SVN trunk.

Fixes in StandardShadowMap?.cpp & MinimalShadowMap?.cpp were made for spotlight issues. There were cases when further located spotlights were not shadowing properly.

Small tweak in DebugShadowMap? & StandardShadowMap?.cpp to not limit shadow maps to texture2D (which should also allow texture2D arrays and cube maps). I simply replaced ptr to osg::Texture2D with pointer to osg::Texture. Interpretation of this member could be now changed with change of shaders in derived classes. This may be useful for guys who override LispSM or MinimalBoundsShadowMaps? techniques. Could be useful for implementation of PerspectiveCascadedShadowMaps? technique for example.

ConvexPolyhedron?.cpp & DebugShadowMap?.cpp contain debug HUD tweaks.

Change in ConvexPolyhedron?.cpp overcomes the regression problem with color per primitive binding which caused that shadow volume outlines stopped to draw. I simply changed PER_PRIMITIVE to PER_PRIMITIVE_SET and it works again.

Other adition is dump method I added to DebugShadowMap? which can be used in shadow debugging mode to dump current frame shadow volumes & scene to osg file. It could be then loaded into viewer and freely examined from different angles (which is difficult inside the application if shadow adopts to view and projection). "

1 modified


  • OpenSceneGraph/trunk/include/osgShadow/DebugShadowMap

    r9555 r11136  
    9696            But it has to be defined now since DebugShadowMap::ViewData methods use it  
    9797            */ 
    98             osg::ref_ptr< osg::Texture2D > _texture; 
     98            osg::ref_ptr< osg::Texture >  _texture; 
    9999            /**  
    100100            Camera used to render ShadowMap - initialized by derived classes. 
    172172                  const osg::Camera * shadowCam, 
    173173                  const ConvexPolyhedron * hull ); 
     175            void dump( const char * filename = "DebugShadowDump.osg" ); 
    174176        };