UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

29 lines (25 loc) 799 B
var fresnelSchlickPS = /* wgsl */ ` // Schlick's approximation fn getFresnel( cosTheta: f32, gloss: f32, specularity: vec3f #if defined(LIT_IRIDESCENCE) , iridescenceFresnel: vec3f, iridescenceIntensity: f32 #endif ) -> vec3f { let fresnel: f32 = pow(1.0 - saturate(cosTheta), 5.0); let glossSq: f32 = gloss * gloss; let ret: vec3f = specularity + (max(vec3f(glossSq), specularity) - specularity) * fresnel; #if defined(LIT_IRIDESCENCE) return mix(ret, iridescenceFresnel, iridescenceIntensity); #else return ret; #endif } fn getFresnelCC(cosTheta: f32) -> f32 { let fresnel: f32 = pow(1.0 - saturate(cosTheta), 5.0); return 0.04 + (1.0 - 0.04) * fresnel; }`; export { fresnelSchlickPS as default };