anchor.diff:      p.anisotropy = 0.0;
   #endif
   
  -    vec3 clearCoatLobe = isEvaluateIBL(p, clearCoatNormal, shading_view, clearCoatNoV);
  +    vec3 clearCoatLobe = isEvaluateSpecularIBL(p, clearCoatNormal, shading_view, clearCoatNoV);
       Fr += clearCoatLobe * (specularAO * pixel.clearCoat);
   #endif
   }
  
positive.code:     return vec3(cos(phi) * sinTheta, sin(phi) * sinTheta, cosTheta);
  }
  
  vec3 importanceSamplingVNdfDggx(vec2 u, float roughness, vec3 v) {
      // See: "A Simpler and Exact Sampling Routine for the GGX Distribution of Visible Normals", Eric Heitz
      float alpha = roughness;
  
negative.code:     vec3 diffuseNormal = shading_normal;
  #endif
  
  #if IBL_INTEGRATION == IBL_INTEGRATION_PREFILTERED_CUBEMAP
      vec3 diffuseIrradiance = diffuseIrradiance(diffuseNormal);
  #elif IBL_INTEGRATION == IBL_INTEGRATION_IMPORTANCE_SAMPLING
      vec3 diffuseIrradiance = isEvaluateDiffuseIBL(pixel, diffuseNormal, shading_view);
  #endif
      vec3 Fd = pixel.diffuseColor * diffuseIrradiance * (1.0 - E) * diffuseBRDF;
  
      // sheen layer
  