UNPKG

playcanvas

Version:

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

3 lines (2 loc) 732 B
declare const _default: "\n// Energy-conserving (hopefully) Blinn-Phong\nfn calcLightSpecular(gloss: f32, worldNormal: vec3f, h: vec3f) -> f32 {\n let nh: f32 = max( dot( h, worldNormal ), 0.0 );\n\n var specPow: f32 = exp2(gloss * 11.0); // glossiness is linear, power is not; 0 - 2048\n\n // Hack: On Mac OS X, calling pow with zero for the exponent generates hideous artifacts so bias up a little\n specPow = max(specPow, 0.0001);\n\n return pow(nh, specPow) * (specPow + 2.0) / 8.0;\n}\n\nfn getLightSpecular(h: vec3f, reflDir: vec3f, worldNormal: vec3f, viewDir: vec3f, lightDirNorm: vec3f, gloss: f32, tbn: mat3x3f) -> f32 {\n return calcLightSpecular(gloss, worldNormal, h);\n}\n"; export default _default;