- Timestamp:
- 02/12/09 18:28:32 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/shaders/deferred.cg
r3304 r3306 231 231 // compute position from old frame for dynamic objects + translational portion 232 232 //const float3 translatedPos = difVec - oldEyePos + worldPos.xyz; 233 // don't use difVec here: want to detect if the actual pixel has changed => ssao changed 233 234 const float3 translatedPos = -oldEyePos + worldPos.xyz; 234 235 … … 259 260 260 261 // 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 263 265 const bool oldDynamic = (squaredLen > DYNAMIC_OBJECTS_THRESHOLD); 264 266 const bool newDynamic = (oldPixel.z > DYNAMIC_OBJECTS_THRESHOLD); … … 270 272 const float pixelCouldBeValid = 2.0f; 271 273 // 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 ) 276 282 { 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 281 286 ((oldDynamic && !newDynamic) || (!oldDynamic && newDynamic) || 282 // check if we have a dynamic object and is a depth discontinuity283 287 ( 288 (oldEyeSpaceDepth < DEPTH_THRESHOLD) && (projectedEyeSpaceDepth < DEPTH_THRESHOLD) && 289 // check if we have a dynamic object 284 290 (oldDynamic || newDynamic) && 285 // (depthDif > 1e-5f))))291 // and is a depth discontinuity 286 292 (depthDif > MIN_DEPTH_DIFF)))) 287 293 { 288 pixelValid = pixelCouldBeValid;294 IsPixelValid = pixelCouldBeValid; 289 295 } 290 296 else 291 297 { 292 pixelValid = pixelIsValid;293 } 294 295 return float2( pixelValid, abs(oldEyeSpaceDepth - projectedEyeSpaceDepth));298 IsPixelValid = pixelIsValid; 299 } 300 301 return float2(IsPixelValid, abs(oldEyeSpaceDepth - projectedEyeSpaceDepth)); 296 302 } 297 303
Note: See TracChangeset
for help on using the changeset viewer.