anchor.diff:      }
       
       void main() {
  +      float width = ${uCanvasSize}.x;
  +      float height = ${uCanvasSize}.y;
  +
         vec2 noise = rand( ${vTextureCoordinates} );
         float depth = readDepth( ${vTextureCoordinates} );
         float tt = clamp( depth, aoClamp, 1.0 );
  
positive.code:     float unpackDepth( const in vec4 rgba_depth ) {
        return rgba_depth.r;
      }
      float unpackDepth2( const in vec4 rgba_depth ) {
        const vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );
        float depth = dot( rgba_depth, bit_shift );
        return depth;
  
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;
  