Ignore:
Timestamp:
02/13/09 11:49:44 (15 years ago)
Author:
mattausch
Message:

working on changed sampling scheme for temporal coherence

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/ssao.cg

    r3307 r3309  
    142142        float validSamples = .0f; 
    143143 
    144         for (int i = 0; i < NUM_SAMPLES; ++ i)  
     144        for (int i = 0; i < NUM_PRECOMPUTED_SAMPLES; ++ i)  
    145145        { 
    146146                const float2 offset = samples[i]; 
     
    220220                        sampler2D colors, 
    221221                        sampler2D noiseTex, 
    222                         float2 samples[NUM_SAMPLES], 
     222                        float2 samples[NUM_PRECOMPUTED_SAMPLES], 
    223223                        float3 normal, 
    224224                        float3 centerPosition, 
     
    231231                        float convergence, 
    232232                        float sampleIntensity, 
    233                         bool isMovingObject 
     233                        bool isMovingObject, 
     234                        int idx 
    234235                        ) 
    235236{ 
     
    237238        float validSamples = .0f; 
    238239        float numSamples = .0f; 
    239  
     240         
    240241        for (int i = 0; i < NUM_SAMPLES; ++ i)  
    241242        { 
     
    250251                        float2 mynoise = tex2Dlod(noiseTex, float4(IN.texCoord * 4.0f, 0, 0)).xy; 
    251252                        //offset = myreflect(samples[i], mynoise); 
    252                         offset = myrotate(samples[i + (int)convergence], mynoise.x); 
     253                        offset = myrotate(samples[i + idx], mynoise.x); 
    253254                } 
    254255                else 
    255256                { 
    256                         offset = samples[i]; 
     257                        offset = samples[i + idx]; 
    257258                } 
    258259                 
     
    334335                   uniform sampler2D normals, 
    335336                   uniform sampler2D noiseTex, 
    336                    uniform float2 samples[NUM_SAMPLES], 
     337                   uniform float2 samples[NUM_PRECOMPUTED_SAMPLES], 
    337338                   uniform sampler2D oldTex, 
    338339                   uniform float4x4 modelViewProj, 
     
    394395 
    395396        float usedWeight = min(temporalCoherence, abs(oldWeight)); 
     397        int idx = (int)oldWeight % (int)temporalCoherence; 
    396398 
    397399        float3 ao; 
     
    400402        if (eyeSpaceDepth < DEPTH_THRESHOLD) 
    401403        { 
    402                 ao = ssao(IN, colors, noiseTex, samples, normal, eyeSpacePos.xyz, scaleFactor, bl, br, tl, tr, normalize(viewDir), usedWeight, sampleIntensity, isMovingObject); 
     404                ao = ssao(IN, colors, noiseTex, samples, normal, eyeSpacePos.xyz, scaleFactor, bl, br, tl, tr, normalize(viewDir), usedWeight, sampleIntensity, isMovingObject, idx); 
    403405                //ao = ssao2(IN, colors, noiseTex, samples, normal, eyeSpacePos.xyz, scaleFactor, bl, br, tl, tr, normalize(viewDir), normals, sampleIntensity); 
    404406        } 
Note: See TracChangeset for help on using the changeset viewer.