declare const _default: "\n\n#if LIT_OCCLUDE_SPECULAR != NONE\n    #ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n        uniform material_occludeSpecularIntensity: f32;\n    #endif\n#endif\n\nfn occludeSpecular(gloss: f32, ao: f32, worldNormal: vec3f, viewDir: vec3f) {\n\n    #if LIT_OCCLUDE_SPECULAR == AO\n        #ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n            var specOcc: f32 = mix(1.0, ao, uniform.material_occludeSpecularIntensity);\n        #else\n            var specOcc: f32 = ao;\n        #endif\n    #endif\n\n    #if LIT_OCCLUDE_SPECULAR == GLOSSDEPENDENT\n\n        // approximated specular occlusion from AO\n        // http://research.tri-ace.com/Data/cedec2011_RealtimePBR_Implementation_e.pptx\n        var specPow: f32 = exp2(gloss * 11.0);\n        var specOcc: f32 = saturate(pow(dot(worldNormal, viewDir) + ao, 0.01 * specPow) - 1.0 + ao);\n\n        #ifdef LIT_OCCLUDE_SPECULAR_FLOAT\n            specOcc = mix(1.0, specOcc, uniform.material_occludeSpecularIntensity);\n        #endif\n    #endif\n\n    #if LIT_OCCLUDE_SPECULAR != NONE\n        dSpecularLight = dSpecularLight * specOcc;\n        dReflection = dReflection * specOcc;\n\n        #ifdef LIT_SHEEN\n            sSpecularLight = sSpecularLight * specOcc;\n            sReflection = sReflection * specOcc;\n        #endif\n    #endif\n}\n";
export default _default;
