anchor.diff:      for (int i = 0; i < gNumSpotLights; i++)
           totalLight += calcLightSpot(gSpotLights[i], normal);
   
  -    fragColor = sampledColor * totalLight;
  +    vec4 transposedColor = sampledColor * totalLight;
  +    if (gFog.method != kFogNone)
  +        transposedColor = mix(transposedColor, gFog.color, calcFog(transposedColor));
   
  -    // deal with fog
  -    if (gFog.method != kFogNone) {
  -        float fogColor = calcFog(fragColor);
  -        fragColor = mix(fragColor, gFog.color, fogColor);
  -    }
  -
  -    fragColor.a = 1.0f;
  +    fragColor = transposedColor.xyzw * maskAlpha.xxxy + maskAlpha.yyyx;
   }
  
positive.code: vec4 calcLightPoint(pointLight light, vec3 normal) {
      vec3 lightDirection = worldPos0 - light.position;
      float distance = length(lightDirection);
      lightDirection = normalize(lightDirection);
  
      vec4 color = calcLightGeneric(light.base, lightDirection, normal, 1.0f);
      float attenuation = light.attenuation.constant +
  
negative.code:     return result;
  }
  
  const vec2 maskAlpha = vec2(1.0f, 0.0f);
  
  void main() {
      vec3 normal = calcBump();
      vec4 totalLight = calcLightDirectional(normal);
  