anchor.diff:  #define M_PI 3.1415926535897932384626433832795
   #define MAX_LIGHTS 5
   #define MAX_DIST 0.35
  +
  +const vec2 invAtan = vec2(1.0 / (2.0 * M_PI), 1.0 / M_PI);
   
   layout(std140, column_major) uniform;
   
  
positive.code: vec4 getLightColor(LightSource l, vec3 p);
  float ShadowCalculation(vec4 fragPosLightSpace, vec3 normal, vec3 lightDir);
  vec3 getFilteredTexel(sampler2D texture, vec2 off);
  
  // Normal Mapping Without Precomputed Tangents by Christian Schüler
  mat3 cotangent_frame(vec3 N, vec3 p, vec2 uv);
  
negative.code: vec4 BiCubic( sampler2D textureSampler, vec2 TexCoord );
  float CatMullRom( float f );
  
  void main(void) {
  
      vec3 specular = vec3(0.0);
      vec3 LO = vec3(0.0);
      
      vec3 p = v_view.xyz;
      vec3 vNorm = normalize(vNormal);
  