common: "\nfn lessThan3(a: vec3f, b: vec3f) -> vec3f {\n return vec3f(vec3<bool>(a.x < b.x, a.y < b.y, a.z < b.z));\n}\n\nfn pow2( x: f32 ) -> f32 {\n return x * x;\n}\n\nfn pow3( x: f32 ) -> f32 {\n return x * x * x;\n}\n\nfn pow4( x: f32 ) -> f32 {\n return pow2(x) * pow2(x);\n}\n\nfn isinf(value: f32) -> bool {\n return value > 1.0e38 || value < -1.0e38;\n}\n\nfn BRDF_Lambert(diffuseColor: vec3f) -> vec3f {\n return RECIPROCAL_PI * diffuseColor;\n}\n\nfn F_Schlick(f0: vec3f, f90: f32, VdotH: f32) -> vec3f {\n let fresnel: f32 = exp2( ( - 5.55473 * VdotH - 6.98316 ) * VdotH );\n return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\n" = ...
Common WGSL functions and struct declarations to use for light shading.