Ignore:
Timestamp:
02/12/09 18:28:32 (15 years ago)
Author:
mattausch
Message:

found error with border

File:
1 edited

Legend:

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

    r3304 r3306  
    231231        // compute position from old frame for dynamic objects + translational portion 
    232232        //const float3 translatedPos = difVec - oldEyePos + worldPos.xyz; 
     233        // don't use difVec here: want to detect if the actual pixel has changed => ssao changed 
    233234        const float3 translatedPos = -oldEyePos + worldPos.xyz; 
    234235 
     
    259260         
    260261        // test if this pixel was valid in the old frame 
    261         float pixelValid; 
    262  
     262        float IsPixelValid; 
     263 
     264        // check if the pixel belonged to a dyanmic object in the last frame 
    263265        const bool oldDynamic = (squaredLen > DYNAMIC_OBJECTS_THRESHOLD); 
    264266        const bool newDynamic = (oldPixel.z > DYNAMIC_OBJECTS_THRESHOLD); 
     
    270272        const float pixelCouldBeValid = 2.0f; 
    271273        // this pixel information has to be discarded in order to not create artifacts 
    272         const float pixelNotValid = 10.0f; 
    273  
    274         if ((oldTexCoords.x < .0f) || (oldTexCoords.x >= 1.0f) ||  
    275                 (oldTexCoords.y < .0f) || (oldTexCoords.y >= 1.0f)) 
     274        const float pixelIsNotValid = 100.0f; 
     275 
     276        const float xOffs = 0;// 0.5f / 1024.0f; 
     277        const float yOffs = 0;// 0.5f / 768.0f; 
     278 
     279        if ((oldTexCoords.x < xOffs) || (oldTexCoords.x > (1.0f - xOffs)) ||  
     280                (oldTexCoords.y < yOffs) || (oldTexCoords.y > (1.0f - yOffs)) 
     281                ) 
    276282        { 
    277                 pixelValid = pixelNotValid; 
    278         } 
    279         else if (//!((oldEyeSpaceDepth > DEPTH_THRESHOLD) || (projectedEyeSpaceDepth > DEPTH_THRESHOLD)) && 
    280                 // check if changed from dynamic to not dynamic object 
     283                IsPixelValid = pixelIsNotValid; 
     284        } 
     285        else if (// check if changed from dynamic to not dynamic object 
    281286                ((oldDynamic && !newDynamic) || (!oldDynamic && newDynamic) || 
    282                 // check if we have a dynamic object and is a depth discontinuity 
    283287                ( 
     288                (oldEyeSpaceDepth < DEPTH_THRESHOLD) && (projectedEyeSpaceDepth < DEPTH_THRESHOLD) && 
     289                // check if we have a dynamic object  
    284290                (oldDynamic || newDynamic) &&  
    285                 //(depthDif > 1e-5f)))) 
     291                // and is a depth discontinuity 
    286292                (depthDif > MIN_DEPTH_DIFF)))) 
    287293        {        
    288                 pixelValid = pixelCouldBeValid;  
     294                IsPixelValid = pixelCouldBeValid;  
    289295        } 
    290296        else  
    291297        { 
    292                 pixelValid = pixelIsValid; 
    293         } 
    294  
    295         return float2(pixelValid, abs(oldEyeSpaceDepth - projectedEyeSpaceDepth)); 
     298                IsPixelValid = pixelIsValid; 
     299        } 
     300 
     301        return float2(IsPixelValid, abs(oldEyeSpaceDepth - projectedEyeSpaceDepth)); 
    296302} 
    297303 
Note: See TracChangeset for help on using the changeset viewer.