Ignore:
Timestamp:
10/12/08 11:46:50 (16 years ago)
Author:
mattausch
Message:

worked on cg shader wrapper class

File:
1 edited

Legend:

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

    r3021 r3025  
    6666static CGparameter sFilterOffsetsParam; 
    6767static CGparameter sFilterWeightsParam; 
     68static CGparameter sPCFFilterWeightsParam; 
    6869 
    6970static CGprogram sCgDownSampleProgram; 
     
    174175 
    175176int DeferredRenderer::colorBufferIdx = 0; 
     177 
     178 
     179 
     180static float GaussianDistribution(float x, float y, float rho) 
     181{ 
     182    float g = 1.0f / sqrtf(2.0f * M_PI * rho * rho); 
     183    g *= expf( -(x*x + y*y) / (2.0f * rho * rho)); 
     184 
     185    return g; 
     186} 
    176187 
    177188 
     
    380391        ShaderProgram *pr; 
    381392 
    382  
    383393        sCgDeferredProgram =  
    384394                cgCreateProgramFromFile(context,  
     
    583593                sEyePosShadowParam = cgGetNamedParameter(sCgDeferredShadowProgram, "eyePos"); 
    584594 
     595                float filterWeights[NUM_PCF_TABS]; 
     596 
     597                sPCFFilterWeightsParam = cgGetNamedParameter(sCgDeferredShadowProgram, "weights"); 
     598 
    585599                PoissonDiscSampleGenerator2 poisson(NUM_PCF_TABS, 1.0f); 
    586600                poisson.Generate((float *)pcfSamples); 
    587601 
     602                 
     603                for (int i = 0; i < NUM_PCF_TABS; ++ i) 
     604                { 
     605                        filterWeights[i] = GaussianDistribution(pcfSamples[i].x, pcfSamples[i].y, 1.0f); 
     606                } 
     607 
    588608                cgGLSetParameterArray2f(sSamplesShadowParam, 0, NUM_PCF_TABS, (const float *)pcfSamples); 
     609                cgGLSetParameterArray1f(sPCFFilterWeightsParam, 0, NUM_PCF_TABS, (const float *)filterWeights); 
    589610 
    590611                pr = new ShaderProgram(sCgDeferredShadowProgram); 
     
    777798#endif 
    778799 
    779  
    780800        cgGLSetMatrixParameterfc(sOldModelViewProjMatrixParam, (const float *)oldProjViewMatrix.x); 
    781801#if 0 
     
    11291149 
    11301150 
    1131 static float GaussianDistribution(float x, float y, float rho) 
    1132 { 
    1133     float g = 1.0f / sqrtf(2.0f * M_PI * rho * rho); 
    1134     g *= expf( -(x*x + y*y) / (2.0f * rho * rho)); 
    1135  
    1136     return g; 
    1137 } 
    1138  
    1139  
    11401151void DeferredRenderer::CombineSsao(FrameBufferObject *fbo) 
    11411152{ 
     
    12381249 
    12391250        cgGLSetParameter1f(sSampleWidthParam, 2.0f / shadowMap->GetSize()); 
    1240          
     1251 
    12411252          
    12421253        cgGLSetMatrixParameterfc(sShadowMatrixParam, (const float *)shadowMatrix.x); 
     
    14411452 
    14421453        fbo->Bind(); 
    1443 #if 1 
     1454         
    14441455        colorBufferIdx = 3 - colorBufferIdx; 
    14451456        glDrawBuffers(1, mrt + colorBufferIdx); 
     
    14681479 
    14691480        glEnd(); 
    1470 #endif 
    14711481 
    14721482        cgGLDisableTextureParameter(sColorsTexToneParam); 
Note: See TracChangeset for help on using the changeset viewer.