Ignore:
Timestamp:
11/13/08 13:14:55 (16 years ago)
Author:
mattausch
Message:

changed tm so no values out of bounds, somehow occlusion error missing again

File:
1 edited

Legend:

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

    r3103 r3125  
    1919}; 
    2020 
    21  
    22 /*float4 DownSample(frag IN, 
    23                                   uniform sampler2D colors, 
    24                                   uniform float2 downSampleOffs[9]): COLOR 
    25 {     
    26     float4 average = .0f; 
    27  
    28         const float4 avgColor = tex2Dlod(colors, float4(IN.texCoord, 0, 0)); 
    29  
    30         float j = 0; 
    31         float4 color; 
    32  
    33     for (int i = 0; i < 9; ++ i) 
    34     { 
    35                 color = tex2Dlod(colors, float4(IN.texCoord + downSampleOffs[i], 0, 0)); 
    36                 if (abs(color.w - avgColor.w) < 1e-3f) 
    37                 { 
    38                         average += color; 
    39                         ++ j; 
    40                 } 
    41     } 
    42          
    43     //average *= 1.0f / 9.0f; 
    44     average *= 1.0f / j; 
    45  
    46     return average; 
    47 }*/ 
    4821  
    4922 
    50 // let bilinear filtering do its work 
    5123float4 DownSample(frag IN, 
    5224                                  uniform sampler2D colors, 
    5325                                  uniform float2 downSampleOffs[NUM_DOWNSAMPLES]): COLOR 
    5426{     
     27        // let bilinear filtering do its work 
    5528        return tex2Dlod(colors, float4(IN.texCoord, 0, 0)); 
    5629/* 
     
    7144        intensity. 
    7245*/ 
    73  
    7446float4 GreyScaleDownSample(frag IN, 
    7547                                                   uniform sampler2D colors, 
     
    148120        float logLum = logLumScaled * LOGLUM_RANGE + MINLOGLUM; 
    149121 
    150         float newImageKey = exp(logLum); 
     122        float newImageKey = max(exp(logLum), 1e-6f); 
    151123 
    152124        // adjust to middle gray 
     
    184156        float logLumScaled = logLum * INV_LOGLUM_RANGE - logLumOffset; 
    185157 
     158        const float expFactor = 0.1f; 
    186159        // exponential smoothing of tone mapping over time 
    187         if (oldLogLum > 1e-5f) // loglum from last frame too bright 
    188                 OUT.col.w = lerp(oldLogLum, logLumScaled, 0.1f); 
     160        if (oldLogLum > 1e-5f) // check if loglum from last frame too small (=> tm too bright) 
     161                OUT.col.w = lerp(oldLogLum, logLumScaled, expFactor); 
    189162        else 
    190163                OUT.col.w = logLumScaled; 
Note: See TracChangeset for help on using the changeset viewer.