anchor.diff:  vec4 calcLightPoint(pointLight light, vec3 normal) {
       vec3 lightDirection = worldPos0 - light.position;
       float distance = length(lightDirection);
  -    lightDirection = normalize(lightDirection);
  +    lightDirection /= distance;
   
       vec4 color = calcLightGeneric(light.base, lightDirection, normal, 1.0f);
       float attenuation = light.attenuation.constant +
  
positive.code: }
  
  vec3 calcBump(void) {
      vec3 normal = normalize(normal0);
      vec3 tangent = normalize(tangent0);
      tangent = normalize(tangent - dot(tangent, normal) * normal);
      vec3 bitangent = cross(tangent, normal);
      vec3 bumpMapNormal = texture(gNormalMap, texCoord0).xyz;
      bumpMapNormal = 2.0f * bumpMapNormal - vec3(1.0f, 1.0f, 1.0f);
      vec3 newNormal;
      mat3 tbn = mat3(tangent, bitangent, normal);
      newNormal = tbn * bumpMapNormal;
      newNormal = normalize(newNormal);
      return newNormal;
  }
  
  float calcFog(vec4 fragColor) {
  
negative.code:     for (int i = 0; i < gNumSpotLights; i++)
          totalLight += calcLightSpot(gSpotLights[i], normal);
  
      vec4 transposedColor = sampledColor * totalLight;
      if (gFog.method != kFogNone)
          transposedColor = mix(transposedColor, gFog.color, calcFog(transposedColor));
  
      fragColor = transposedColor.xyzw * maskAlpha.xxxy + maskAlpha.yyyx;
  }
  