 
     return diffuseLight * diffuseColor;
 }
+
+// struct LightingOutput
+// {
+//     vec3 f_specular;
+//     vec3 f_diffuse;
+//     vec3 f_clearCoat;
+//     AngularInfo incidence;
+//     // vec3 normal
+// };
 
 vec3 getPointShade(vec3 pointToLight, MaterialInfo materialInfo, vec3 view)
 {

        info.clearcoatNormal = getNormal(true); // get geometry normal
    #endif

    return info;
}


    f_emissive *= SRGBtoLINEAR(texture(u_EmissiveSampler, getEmissiveUV())).rgb;
#endif

    vec3 color = vec3(0); // f_emissive + f_specular + f_diffuse + punctualColor;

    vec3 blendFactor = vec3(0.f);

    #ifdef MATERIAL_CLEARCOAT
        blendFactor = materialInfo.clearcoatFactor * fresnelReflection(vec3(0.04), vec3(1.0), clampedDot(materialInfo.clearcoatNormal, view));
    #endif

    color = (f_emissive + f_diffuse) * (1.0 - blendFactor) + mix(f_specular, f_clearcoat, blendFactor);

    float ao = 1.0;
    // Apply optional PBR terms for additional (optional) shading
