anchor.diff:  
     // shadow calculation
     vec3 projCoords = vLightClipPos.xyz / vLightClipPos.w;
  -  projCoords.z -= 0.00001;
  +  projCoords.z = length(vPosition.xyz - lightPos) * LinearDepthConstant;
  +  projCoords.z *= 0.96;
   
     vec2 uv = projCoords.xy;
     float illuminated = 1.0; 
  
positive.code:     """
  precision highp float;
  
  vec4 pack(float depth) {
    const vec4 bias = vec4(1.0 / 255.0,
          1.0 / 255.0,
  
negative.code:   sceneShader.uniform(ctx, Semantics.projectionMat, projMat.storage);
    sceneShader.uniform(ctx, "lightView", lightView.storage);
    sceneShader.uniform(ctx, "lightProj", lightProj.storage);
    sceneShader.uniform(ctx, "lightPos", light.position.storage);
    ctx.activeTexture(gl.TEXTURE0);
    ctx.bindTexture(lightDepthTexture.target, lightDepthTexture.data);
    sceneShader.uniform(ctx, "depthMapping", 0);
  