anchor.diff:          }
   
           vec3 incidentVector = normalize(u_perPass.lights[i].position-pos);
  -        float directionnalAttenuation = max(dot(n, incidentVector), 0.0);
  +        float directionnalAttenuation = max(dot(normal, incidentVector), 0.0);
   
           vec3 kS = fresnelSchlick(incidentVector, excidentVector, f0);
           vec3 kD = vec3(1.0) - kS;
           kD *= 1.0 - fresnel;
   
  -        specular = microFacetSpecular(incidentVector,excidentVector,n,kS,roughness, 2);
  +        specular = microFacetSpecular(incidentVector,excidentVector,normal,kS,roughness, 2);
   
           vec3 radiance = vec3(u_perPass.lights[i].color) * getIntensityFromPosition(u_perPass.lights[i],pos);
   
  
positive.code: // http://www.thetenthplanet.de/archives/1180
  //---------------------------------------------------------------
  
  mat3 cotangent_frame(vec3 N, vec3 pos, vec2 uv)
  {
      // get edge vectors of the pixel triangle
      vec3 dp1 = dFdx( pos );
  
negative.code: 
  // Custom functions
  vec3 getIntensityFromPosition(LightSource l, vec3 pos);
  vec3 microFacetSpecular(vec3 incidentVector, vec3 excidentVector, vec3 normal, vec3 fresnel, float roughness, int distriNbr);
  vec3 fresnelSchlick(vec3 incidentVector, vec3 excidentVector, vec3 f0);
  vec4 getLightColor(LightSource l, vec3 pos);
  float ShadowCalculation(vec4 fragPosLightSpace, vec3 normal, vec3 lightDir);
  