Ignore:
Timestamp:
09/03/08 01:57:45 (16 years ago)
Author:
mattausch
Message:

improved shadow mapping

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/ShadowMapping.cpp

    r2894 r2897  
    7979 
    8080 
    81 ShadowMap::ShadowMap(int size, const AxisAlignedBox3 &sceneBox, Camera *cam): 
    82 mSceneBox(sceneBox), mSize(size), mCamera(cam) 
     81ShadowMap::ShadowMap(Light *light, int size, const AxisAlignedBox3 &sceneBox, Camera *cam): 
     82mSceneBox(sceneBox), mSize(size), mCamera(cam), mLight(light) 
    8383{ 
    8484        mFbo = new FrameBufferObject(size, size, FrameBufferObject::DEPTH_32, true); 
     
    9494{ 
    9595        DEL_PTR(mFbo); 
    96 } 
    97  
    98  
    99  
    100 void ShadowMap::ComputeShadowMap(Light *light, RenderTraverser *traverser) 
    101 { 
    102         mLight = light; 
    103  
     96        DEL_PTR(mShadowCam); 
     97} 
     98 
     99 
     100void ShadowMap::ComputeShadowMap(RenderTraverser *renderer) 
     101{ 
    104102        const float xlen = Magnitude(mSceneBox.Diagonal() * 0.5f); 
    105103        const float ylen = Magnitude(mSceneBox.Diagonal() * 0.5f); 
    106104         
    107         mShadowCam->SetDirection(light->GetDirection()); 
     105        mShadowCam->SetDirection(mLight->GetDirection()); 
    108106         
    109107        // set position so that we can see the whole scene 
    110108        Vector3 pos = mSceneBox.Center(); 
    111109 
    112         pos -= light->GetDirection() * Magnitude(mSceneBox.Diagonal() * 0.5f); 
     110        pos -= mLight->GetDirection() * Magnitude(mSceneBox.Diagonal() * 0.5f); 
    113111        mShadowCam->SetPosition(pos); 
    114112 
     
    142140        glMatrixMode(GL_MODELVIEW); 
    143141        glPushMatrix(); 
    144  
    145142        glLoadIdentity(); 
    146143 
    147144        // setup shadow camera 
    148145        mShadowCam->SetupCameraView(); 
     146 
    149147 
    150148        ////////////// 
     
    168166        //-- render scene into shadow map 
    169167 
    170         traverser->RenderScene(); 
     168        renderer->RenderScene(); 
     169 
    171170         
    172171        glDisable(GL_POLYGON_OFFSET_FILL); 
Note: See TracChangeset for help on using the changeset viewer.