Ignore:
Timestamp:
12/26/08 02:44:45 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

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

    r3233 r3235  
    301301mSunVisiblePixels(0), 
    302302mSavedFrameNumber(-1), 
    303 mSavedFrameSuffix("") 
     303mSavedFrameSuffix(""), 
     304mMaxDistance(1e6f) 
    304305{ 
    305306        /////////// 
     
    488489        //////////////// 
    489490         
    490         string dofParams[] = {"colorsTex", "filterOffs", "sceneRange"}; 
    491  
    492         sCgDOFProgram->AddParameters(dofParams, 0, 3); 
     491        string dofParams[] = {"colorsTex", "filterOffs", "sceneRange", "zFocus"}; 
     492 
     493        sCgDOFProgram->AddParameters(dofParams, 0, 4); 
    493494 
    494495 
     
    520521        // todo matt: it is stupid to put num samples and width of kernel into constructor => change this!!! 
    521522        PoissonDiscSampleGenerator2D poisson3(NUM_DOF_TABS, 1.0f); 
    522         poisson2.Generate((float *)dofSamples); 
     523        poisson3.Generate((float *)dofSamples); 
     524 
     525        for (int i = 0; i < NUM_DOF_TABS; ++ i) 
     526        { 
     527                dofSamples[i].x *= 1.0f / mWidth; 
     528                dofSamples[i].y *= 1.0f / mHeight; 
     529        } 
    523530 
    524531        //float dofWeights[NUM_PCF_TABS]; 
     
    567574        } 
    568575 
     576        /// do depth of field 
     577        DepthOfField(fbo); 
     578 
    569579        if (useToneMapping) 
    570580        { 
     
    574584                ToneMap(fbo, imageKey, whiteLum, middleGrey); 
    575585        } 
    576  
    577  
    578         /// do depth of field 
    579         DepthOfField(fbo); 
    580586 
    581587        /// compute lense flare 
     
    13121318        FlipFbos(fbo); 
    13131319 
    1314         float sceneRange = 1.0f; 
    1315  
    13161320        int i = 0; 
     1321 
     1322        const float zFocus = 7.0f; 
    13171323 
    13181324        sCgDOFProgram->SetTexture(i ++, colorsTex); 
    13191325        sCgDOFProgram->SetArray2f(i ++, (float *)dofSamples, NUM_DOF_TABS); 
    1320         sCgDOFProgram->SetValue1f(i ++, mCamera->GetFar() - mCamera->GetNear()); 
     1326        sCgDOFProgram->SetValue1f(i ++, min(mCamera->GetFar(), mMaxDistance) - mCamera->GetNear()); 
     1327        sCgDOFProgram->SetValue1f(i ++, zFocus); 
    13211328 
    13221329        DrawQuad(sCgDOFProgram); 
     
    14421449 
    14431450 
     1451void DeferredRenderer::SetMaxDistance(float maxDist)  
     1452{ 
     1453        mMaxDistance = maxDist; 
     1454} 
     1455 
     1456 
    14441457void DeferredRenderer::SetSaveFrame(const string &suffix, int frameNumber) 
    14451458{ 
Note: See TracChangeset for help on using the changeset viewer.