playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
3 lines (2 loc) • 999 B
TypeScript
declare const _default: "\n// Schlick's approximation\nfn getFresnel(\n cosTheta: f32,\n gloss: f32,\n specularity: vec3f\n #if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel: vec3f,\n iridescenceIntensity: f32\n #endif\n) -> vec3f {\n let fresnel: f32 = pow(1.0 - saturate(cosTheta), 5.0);\n let glossSq: f32 = gloss * gloss;\n\n // Scale gloss contribution by specularity intensity to ensure F90 approaches 0 when F0 is 0\n let specIntensity: f32 = max(specularity.r, max(specularity.g, specularity.b));\n let ret: vec3f = specularity + (max(vec3f(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\nfn getFresnelCC(cosTheta: f32) -> f32 {\n let fresnel: f32 = pow(1.0 - saturate(cosTheta), 5.0);\n return 0.04 + (1.0 - 0.04) * fresnel;\n}";
export default _default;