anchor.diff:      
   /*
       float doFog() {
  -      float zdepth = unpackDepth( texture2D(${uDepthMap}, ${vTextureCoordinates} ) );
  +      float zdepth = unpackDepth( texture(${uDepthMap}, ${vTextureCoordinates} ) );
         float depth = -cameraFar * cameraNear / ( zdepth * cameraFarMinusNear - cameraFar );
         return smoothstep( fogNear, fogFar, depth );
       }
   */  
   
  -    float readDepth( const in vec2 coord ) {
  +    float readDepth(vec2 coord) {
  +      float cameraFarPlusNear = ${uCameraFar} + ${uCameraNear};
  +      float cameraFarMinusNear = ${uCameraFar} - ${uCameraNear};
  +      float cameraCoef = 2.0 * ${uCameraNear};
         return cameraCoef / ( cameraFarPlusNear - unpackDepth( texture(${uDepthMap}, coord ) ) * cameraFarMinusNear );
       }
       
  
positive.code:         final = onlyAOColor * vec3( mix( vec3( ao ), vec3( 1.0 ), luminance * lumInfluence ) );
        }
        ${oFragColor} = vec4( final, 1.0 );
        //gl_FragColor = vec4( color, 1.0 );
      }
      
      """;
  
negative.code:         float ny = dot ( coord, vec2( 12.9898, 78.233 ) * 2.0 );
          noise = clamp( fract ( 43758.5453 * sin( vec2( nx, ny ) ) ), 0.0, 1.0 );
        } else {
          float width = ${uCanvasSize}.x;
          float height = ${uCanvasSize}.y;
          float ff = fract( 1.0 - coord.s * ( width / 2.0 ) );
          float gg = fract( coord.t * ( height / 2.0 ) );
          noise = vec2( 0.25, 0.75 ) * vec2( ff ) + vec2( 0.75, 0.25 ) * gg;
  