Ignore:
Timestamp:
11/19/08 02:35:37 (16 years ago)
Author:
mattausch
Message:

managed to remove halo by modifying depth / normal discontinuity filter

File:
1 edited

Legend:

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

    r3142 r3143  
    105105                sampleTexCoord = float4(texCoord + filterOffs[i] * scale, 0, 0); 
    106106 
    107  
    108107                aoSample = tex2Dlod(ssaoTex, sampleTexCoord); 
    109108                sampleNorm = normalize(tex2Dlod(normalsTex, sampleTexCoord).xyz); 
     
    117116                //sampleDepth = aoSample.w; 
    118117                //depthFactor = max(step(1e-1f, 1.0f - abs(1.0f - eyeSpaceDepth / sampleDepth)), 1e-3f); 
    119                 depthFactor = max(1.0f - abs(1.0f - eyeSpaceDepth / sampleDepth), 1e-3f); 
     118                //depthFactor = max(1.0f - abs(1.0f - eyeSpaceDepth / sampleDepth), 1e-6f); 
     119                //depthFactor = max(1.0f - abs(1.0f - eyeSpaceDepth / sampleDepth), 1e-6f); 
     120 
     121                depthFactor = 1.0f / max(abs(eyeSpaceDepth - sampleDepth), 1e-3f); 
    120122#endif 
    121                 //normalFactor = max(step(0.9f, dot(sampleNorm, centerNormal)), 1e-3f); 
    122                 normalFactor = max(dot(sampleNorm, centerNormal), 1e-3f); 
    123                 convergenceFactor = min(1000.0f, aoSample.y) * 0.01f;//max(step(18.5f, aoSample.y), 1e-3f); 
     123                //normalFactor = max(step(0.6f, dot(sampleNorm, centerNormal)), 1e-6f); 
     124                normalFactor = max(dot(sampleNorm, centerNormal), 1e-6f); 
     125                convergenceFactor = min(200.0f, aoSample.y) * 0.01f;//max(step(18.5f, aoSample.y), 1e-3f); 
    124126 
    125127                //w = filterWeights[i] * normalFactor * depthFactor * convergenceFactor; 
    126                 w = normalFactor * depthFactor * convergenceFactor; 
     128                //w = 1000.0f * normalFactor * depthFactor;// * convergenceFactor; 
     129                //w = normalFactor; 
     130                w = depthFactor * normalFactor * convergenceFactor; 
    127131                //w = filterWeights[i] * normalFactor * converganceFactor; 
    128132                //w = filterWeights[i] * normalFactor * depthFactor; 
     
    130134 
    131135                average += aoSample.x * w; 
     136                //average += aoSample.x; 
    132137                total_w += w; 
    133138        } 
    134139 
    135         average *= 1.0f / max(total_w, 1e-1f); 
    136  
    137         return saturate(average); 
     140        average /= max(total_w, 1e-1f); 
     141        //average /= NUM_SSAO_FILTERSAMPLES; 
     142 
     143        return saturate(average ); 
    138144} 
    139145 
     
    161167                const float scaleFactor = 1.0f; 
    162168                const float adaptFactor = 10.0f; 
     169                //const float adaptFactor = 500000.0f; 
    163170 
    164171                //ao.x = Filter(IN.texCoord, ssaoTex, filterOffs, filterWeights); 
     
    168175 
    169176                const float scale =     adaptFactor * scaleFactor * ao.z  / (adaptFactor + ao.y); 
    170  
     177                //const float scale = scaleFactor * ao.z; 
     178                 
    171179                ao.x = DiscontinuityFilter(IN.texCoord, ao, col, ssaoTex, normalsTex, colorsTex, filterOffs, filterWeights, scale, bl, br, tl, tr); 
    172180                //if (ao.y < 50.5f) ao.x = DiscontinuityFilter(IN.texCoord, ao, col, ssaoTex, normalsTex, colorsTex, filterOffs, filterWeights, ao.z, bl, br, tl, tr); 
Note: See TracChangeset for help on using the changeset viewer.