Show
Ignore:
Timestamp:
03/21/12 18:36:20 (3 years ago)
Author:
robert
Message:

Ran script to remove trailing spaces and tabs

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/src/osgShadow/StandardShadowMap.cpp

    r12737 r13041  
    1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield  
     1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield 
    22 * 
    3  * This library is open source and may be redistributed and/or modified under   
    4  * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or  
     3 * This library is open source and may be redistributed and/or modified under 
     4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or 
    55 * (at your option) any later version.  The full license is in LICENSE file 
    66 * included with this distribution, and on the openscenegraph.org website. 
    7  *  
     7 * 
    88 * This library is distributed in the hope that it will be useful, 
    99 * but WITHOUT ANY WARRANTY; without even the implied warranty of 
    10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
     10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    1111 * OpenSceneGraph Public License for more details. 
    1212 * 
     
    3434 
    3535StandardShadowMap::StandardShadowMap(): 
    36     BaseClass(),     
     36    BaseClass(), 
    3737    _polygonOffsetFactor( 1.1f ), 
    3838    _polygonOffsetUnits( 4.0f ), 
     
    4343    _shadowTextureCoordIndex( 1 ) 
    4444 
    45 {  
     45{ 
    4646#if FRAGMENT_SHADERS_ONLY 
    4747    _mainFragmentShader = new osg::Shader( osg::Shader::FRAGMENT, 
     
    7070//      "  color.rgb = mix( gl_Fog.color.rgb, color.rgb, fog );                  \n" 
    7171        "  gl_FragColor = color;                                                 \n" 
    72         "} \n" );    
     72        "} \n" ); 
    7373 
    7474    _shadowFragmentShader = new osg::Shader( osg::Shader::FRAGMENT, 
     
    8282        "    return shadow2DProj( shadowTexture, gl_TexCoord[1] ).r;            \n" 
    8383        "} \n" ); 
    84      
    85      
     84 
     85 
    8686    _shadowVertexShader = NULL; 
    8787    _mainVertexShader = NULL; 
     
    112112//      "  color.rgb = mix( gl_Fog.color.rgb, color.rgb, fog );                  \n" 
    113113        "  gl_FragColor = color;                                                 \n" 
    114         "} \n" );    
    115      
    116      
     114        "} \n" ); 
     115 
     116 
    117117    _shadowFragmentShader = new osg::Shader( osg::Shader::FRAGMENT, 
    118118        " // following expressions are auto modified - do not change them:      \n" 
     
    126126        "} \n" ); 
    127127 
    128      
    129      
     128 
     129 
    130130    _shadowVertexShader = new osg::Shader( osg::Shader::VERTEX, 
    131131        " // following expressions are auto modified - do not change them:      \n" 
     
    144144        "    gl_TexCoord[1].q = dot( ecPosition, gl_EyePlaneQ[1] );             \n" 
    145145        "} \n" ); 
    146      
     146 
    147147    _mainVertexShader = new osg::Shader( osg::Shader::VERTEX, 
    148148        " // following expressions are auto modified - do not change them:      \n" 
     
    237237        "    d = length(VP);                                                    \n" 
    238238        "                                                                       \n" 
    239         "    // Normalize the vector from surface to light position             \n"  
     239        "    // Normalize the vector from surface to light position             \n" 
    240240        "    VP = normalize(VP);                                                \n" 
    241241        "                                                                       \n" 
     
    361361} 
    362362 
    363 StandardShadowMap::~StandardShadowMap(void)                                         
    364 {                                                                                 
    365                                                                                  
    366 }                                     
     363StandardShadowMap::~StandardShadowMap(void) 
     364{ 
     365 
     366} 
    367367 
    368368void StandardShadowMap::updateTextureCoordIndices( unsigned int fromTextureCoordIndex, unsigned int toTextureCoordIndex ) 
     
    387387        char acFrom[ 32 ], acTo[32]; 
    388388 
    389         // its not elegant to mix stdio & stl strings  
     389        // its not elegant to mix stdio & stl strings 
    390390        // but in this context I do an exception for cleaner code 
    391391 
     
    413413 
    414414    std::string::size_type fromLength = fromString.length(); 
    415     std::string::size_type srceLength = srceString.length();    
     415    std::string::size_type srceLength = srceString.length(); 
    416416 
    417417    for( std::string::size_type pos = 0; pos < srceLength; ) 
     
    423423 
    424424        destString.append( srceString, pos, end - pos ); 
    425          
     425 
    426426        if( end == srceLength ) 
    427427            break; 
     
    436436void StandardShadowMap::ViewData::cull() 
    437437{ 
    438     // step 1:  
    439     // cull shadowed scene ie put into render bins and states into stage graphs  
     438    // step 1: 
     439    // cull shadowed scene ie put into render bins and states into stage graphs 
    440440    cullShadowReceivingScene( ); 
    441441 
    442442    // step 2: 
    443     // find the light casting our shadows  
     443    // find the light casting our shadows 
    444444    osg::Vec4 lightPos; 
    445445    osg::Vec3 lightDir; 
     
    455455 
    456456    // step 4: 
    457     // cull scene casting shadow and generate render   
     457    // cull scene casting shadow and generate render 
    458458    cullShadowCastingScene( ); 
    459459 
    460460    // step 5: 
    461     // setup texgen generating shadow map coords for the shadow receiving scene  
     461    // setup texgen generating shadow map coords for the shadow receiving scene 
    462462    addShadowReceivingTexGen( ); 
    463463 
     
    488488        _texture = texture; 
    489489    } 
    490      
     490 
    491491    _camera = new osg::Camera; 
    492     { // Setup shadow map camera  
     492    { // Setup shadow map camera 
    493493        _camera->setName( "ShadowCamera" ); 
    494494#if 0  // Absolute reference frame INHERIT_VIEWPOINT works better than this 
    495495        _camera->setCullingMode 
    496                 ( _camera->getCullingMode() & ~osg::CullSettings::SMALL_FEATURE_CULLING );  
     496                ( _camera->getCullingMode() & ~osg::CullSettings::SMALL_FEATURE_CULLING ); 
    497497#endif 
    498498        _camera->setReferenceFrame(osg::Camera::ABSOLUTE_RF_INHERIT_VIEWPOINT); 
     
    504504        _camera->setClearColor( osg::Vec4(1.0f,1.0f,1.0f,1.0f) ); 
    505505#endif 
    506         _camera->setComputeNearFarMode(osg::Camera::DO_NOT_COMPUTE_NEAR_FAR);         
     506        _camera->setComputeNearFarMode(osg::Camera::DO_NOT_COMPUTE_NEAR_FAR); 
    507507        _camera->setViewport(0,0, st->_textureSize.x(), st->_textureSize.y() ); 
    508         _camera->setRenderOrder(osg::Camera::PRE_RENDER);         
    509         _camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT);         
     508        _camera->setRenderOrder(osg::Camera::PRE_RENDER); 
     509        _camera->setRenderTargetImplementation(osg::Camera::FRAME_BUFFER_OBJECT); 
    510510        _camera->attach(osg::Camera::DEPTH_BUFFER, _texture.get()); 
    511511    } 
     
    518518        image->allocateImage( 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE ); 
    519519        *(osg::Vec4ub*)image->data() = osg::Vec4ub( 0xFF, 0xFF, 0xFF, 0xFF ); 
    520          
     520 
    521521        osg::Texture2D* fakeTex = new osg::Texture2D( image ); 
    522522        fakeTex->setWrap(osg::Texture2D::WRAP_S,osg::Texture2D::REPEAT); 
     
    524524        fakeTex->setFilter(osg::Texture2D::MIN_FILTER,osg::Texture2D::NEAREST); 
    525525        fakeTex->setFilter(osg::Texture2D::MAG_FILTER,osg::Texture2D::NEAREST); 
    526          
     526 
    527527        _stateset->setTextureAttribute(st->_baseTextureUnit,fakeTex,osg::StateAttribute::ON); 
    528528        _stateset->setTextureMode(st->_baseTextureUnit,GL_TEXTURE_2D,osg::StateAttribute::ON); 
     
    533533    } 
    534534 
    535     { // Add shadow texture  
     535    { // Add shadow texture 
    536536        _stateset->setTextureAttributeAndModes(st->_shadowTextureUnit,_texture.get(),osg::StateAttribute::ON); 
    537537        _stateset->setTextureMode(st->_shadowTextureUnit,GL_TEXTURE_GEN_S,osg::StateAttribute::ON); 
     
    541541    } 
    542542 
    543     {  // Setup shaders used in shadow casting         
     543    {  // Setup shaders used in shadow casting 
    544544        osg::Program * program = new osg::Program(); 
    545545        _stateset->setAttribute( program ); 
     
    565565    { // Setup states used for shadow map generation 
    566566        osg::StateSet * stateset = _camera->getOrCreateStateSet(); 
    567       
    568         stateset->setAttribute(  
     567 
     568        stateset->setAttribute( 
    569569            new osg::PolygonOffset( st->_polygonOffsetFactor, st->_polygonOffsetUnits ), 
    570570                osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE ); 
     
    574574 
    575575        // agressive optimization 
    576         stateset->setRenderBinDetails( 0, "RenderBin",  
     576        stateset->setRenderBinDetails( 0, "RenderBin", 
    577577                            osg::StateSet::OVERRIDE_RENDERBIN_DETAILS ); 
    578578 
     
    589589 
    590590        // note soft (attribute only no mode override) setting. When this works ? 
    591         // 1. for objects prepared for backface culling  
     591        // 1. for objects prepared for backface culling 
    592592        //    because they usually also set CullFace and CullMode on in their state 
    593593        //    For them we override CullFace but CullMode remains set by them 
    594         // 2. For one faced, trees, and similar objects which cannot use  
     594        // 2. For one faced, trees, and similar objects which cannot use 
    595595        //    backface nor front face so they usually use CullMode off set here. 
    596596        //    In this case we will draw them in their entirety. 
     
    599599              osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE ); 
    600600 
    601         // make sure GL_CULL_FACE is off by default  
    602         // we assume that if object has cull face attribute set to back  
     601        // make sure GL_CULL_FACE is off by default 
     602        // we assume that if object has cull face attribute set to back 
    603603        // it will also set cull face mode ON so no need for override 
    604604        stateset->setMode( GL_CULL_FACE, osg::StateAttribute::OFF ); 
    605605 
    606         // optimization attributes  
     606        // optimization attributes 
    607607        osg::Program* program = new osg::Program; 
    608608        stateset->setAttribute( program, osg::StateAttribute::OVERRIDE | osg::StateAttribute::ON ); 
     
    649649    osgUtil::RenderStage * rs = _cv->getRenderStage(); 
    650650 
    651     osgUtil::PositionalStateContainer::AttrMatrixList& aml =  
     651    osgUtil::PositionalStateContainer::AttrMatrixList& aml = 
    652652        rs->getPositionalStateContainer()->getAttrMatrixList(); 
    653653 
     
    678678        if( lightPos[3] == 0 ) 
    679679            lightDir.set( -lightPos[0], -lightPos[1], -lightPos[2] ); 
    680         else  
    681             lightDir = light->getDirection();             
     680        else 
     681            lightDir = light->getDirection(); 
    682682 
    683683        lightPos = lightPos * localToWorld; 
     
    691691void StandardShadowMap::ViewData::aimShadowCastingCamera( const osg::Light *light, 
    692692                                                  const osg::Vec4 &lightPos, 
    693                                                   const osg::Vec3 &lightDir,                                            
     693                                                  const osg::Vec3 &lightDir, 
    694694                                                  const osg::Vec3 &lightUp 
    695695                                        /* by default = osg::Vec3( 0, 1 0 )*/ ) 
    696696{ 
    697 #if 0 // less precise but faster  
     697#if 0 // less precise but faster 
    698698    osg::BoundingSphere bs =_st->getShadowedScene()->getBound(); 
    699699#else 
     
    709709} 
    710710 
    711 void StandardShadowMap::ViewData::aimShadowCastingCamera(  
     711void StandardShadowMap::ViewData::aimShadowCastingCamera( 
    712712                                        const osg::BoundingSphere &bs, 
    713713                                        const osg::Light *light, 
    714714                                        const osg::Vec4 &lightPos, 
    715                                         const osg::Vec3 &lightDir,                                            
    716                                         const osg::Vec3 &lightUpVector  
     715                                        const osg::Vec3 &lightDir, 
     716                                        const osg::Vec3 &lightUpVector 
    717717                                        /* by default = osg::Vec3( 0, 1 0 )*/ ) 
    718718{ 
     
    730730        position = bs.center() - lightDir * bs.radius() * 2; 
    731731    } 
    732          
     732 
    733733    float centerDistance = (position-bs.center()).length(); 
    734734    float znear = centerDistance-bs.radius(); 
    735735    float zfar  = centerDistance+bs.radius(); 
    736736    float zNearRatio = 0.001f; 
    737     if (znear<zfar*zNearRatio)  
     737    if (znear<zfar*zNearRatio) 
    738738        znear = zfar*zNearRatio; 
    739739 
     
    765765    _cv->pushStateSet( _stateset.get() ); 
    766766 
    767     _st->getShadowedScene()->osg::Group::traverse( *_cv );         
     767    _st->getShadowedScene()->osg::Group::traverse( *_cv ); 
    768768 
    769769    _cv->popStateSet(); 
     
    771771 
    772772void StandardShadowMap::ViewData::cullShadowCastingScene( ) 
    773 {     
     773{ 
    774774    // record the traversal mask on entry so we can reapply it later. 
    775775    unsigned int traversalMask = _cv->getTraversalMask(); 
    776776 
    777     _cv->setTraversalMask( traversalMask &  
     777    _cv->setTraversalMask( traversalMask & 
    778778         _st->getShadowedScene()->getCastsShadowTraversalMask() ); 
    779779 
     
    786786 
    787787void StandardShadowMap::ViewData::addShadowReceivingTexGen( ) 
    788 {      
     788{ 
    789789     _texgen->setMode(osg::TexGen::EYE_LINEAR); 
    790790