anchor.diff:      return decodeDataForIBL(textureLod(light_iblSpecular, r, lod));
   }
   
  -vec3 specularIrradiance(const vec3 r, float roughness, float offset) {
  +vec3 prefilteredRadiance(const vec3 r, float roughness, float offset) {
       float lod = IBL_MAX_MIP_LEVEL * roughness * roughness;
       return decodeDataForIBL(textureLod(light_iblSpecular, r, lod + offset));
   }
  
positive.code: // IBL specular
  //------------------------------------------------------------------------------
  
  vec3 specularIrradiance(const vec3 r, float roughness) {
      // lod = lod_count * sqrt(linear_roughness), which is the mapping used by cmgen
      // where linear_roughness = roughness^2
      // using all the mip levels requires seamless cubemap sampling
  
negative.code:     float Fc = F_Schlick(0.04, 1.0, clearCoatNoV) * pixel.clearCoat;
      float attenuation = 1.0 - Fc;
      Fr *= sq(attenuation);
      Fr += prefilteredRadiance(clearCoatR, pixel.clearCoatRoughness) * (specularAO * Fc);
      Fd *= attenuation;
  #endif
  }
  