UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

3 lines (2 loc) 1 kB
declare const _default: "\nfn refract2(viewVec: vec3f, normal: vec3f, IOR: f32) -> vec3f {\n let vn: f32 = dot(viewVec, normal);\n let k: f32 = 1.0 - IOR * IOR * (1.0 - vn * vn);\n let refrVec: vec3f = IOR * viewVec - (IOR * vn + sqrt(k)) * normal;\n return refrVec;\n}\n\nfn addRefraction(\n worldNormal: vec3f,\n viewDir: vec3f,\n thickness: f32,\n gloss: f32,\n specularity: vec3f,\n albedo: vec3f,\n transmission: f32,\n refractionIndex: f32,\n dispersion: f32\n#if defined(LIT_IRIDESCENCE)\n , iridescenceFresnel: vec3f,\n iridescenceIntensity: f32\n#endif\n) {\n // use same reflection code with refraction vector\n let tmpRefl: vec4f = dReflection;\n let reflectionDir: vec3f = refract2(-viewDir, worldNormal, refractionIndex);\n dReflection = vec4f(0.0);\n addReflection(reflectionDir, gloss);\n dDiffuseLight = mix(dDiffuseLight, dReflection.rgb * albedo, transmission);\n dReflection = tmpRefl;\n}\n"; export default _default;