anchor.diff:  attribute highp vec3 aNormal;
   attribute highp vec3 aPosition;
   void main(){
  -    vPosition = lightProj * lightView * uModelMat * vec4(aPosition, 1.0);
  -    gl_Position = vPosition;
  +    vPosition = lightView * uModelMat * vec4(aPosition, 1.0);
  +    gl_Position = lightProj * vPosition;
   }
   """;
   
   const depthMapFS = """
   void main(){
  -    gl_FragColor = pack(gl_FragCoord.z);
  +    float linearDepth = length(vPosition) * LinearDepthConstant;
  +    gl_FragColor = pack(linearDepth);
   }
   """;
   
  
positive.code: 
    // shadow calculation
    vec3 projCoords = vLightClipPos.xyz / vLightClipPos.w;
    projCoords.z -= 0.00001;
  
    vec2 uv = projCoords.xy;
    float illuminated = 1.0; 
  
negative.code: uniform mat4 lightProj;
  uniform mat4 lightView; 
  uniform mat3 lightRot;
  uniform vec3 lightPos;
  const mat4 offsetMat = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);
  varying highp vec3 vNormal;
  varying highp vec4 vPosition;
  