UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

3 lines (2 loc) 954 B
declare const _default: "\n// Schlick's approximation\nvec3 getFresnel(\n float cosTheta, \n float gloss, \n vec3 specularity\n#if defined(LIT_IRIDESCENCE)\n , vec3 iridescenceFresnel, \n float iridescenceIntensity\n#endif\n ) {\n float fresnel = pow(1.0 - saturate(cosTheta), 5.0);\n float glossSq = gloss * gloss;\n\n // Scale gloss contribution by specularity intensity to ensure F90 approaches 0 when F0 is 0\n float specIntensity = max(specularity.r, max(specularity.g, specularity.b));\n vec3 ret = specularity + (max(vec3(glossSq * specIntensity), specularity) - specularity) * fresnel;\n\n#if defined(LIT_IRIDESCENCE)\n return mix(ret, iridescenceFresnel, iridescenceIntensity);\n#else\n return ret;\n#endif \n}\n\nfloat getFresnelCC(float cosTheta) {\n float fresnel = pow(1.0 - saturate(cosTheta), 5.0);\n return 0.04 + (1.0 - 0.04) * fresnel;\n}\n"; export default _default;