UNPKG

playcanvas

Version:

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

3 lines (2 loc) 942 B
declare const _default: "\nfn getReflDir(worldNormal: vec3f, viewDir: vec3f, gloss: f32, tbn: mat3x3f) {\n let roughness: f32 = sqrt(1.0 - min(gloss, 1.0));\n\n let direction: vec2f = dAnisotropyRotation;\n let anisotropicT: vec3f = normalize(tbn * vec3f(direction, 0.0));\n let anisotropicB: vec3f = normalize(cross(tbn[2], anisotropicT));\n\n let anisotropy: f32 = dAnisotropy;\n let anisotropicDirection: vec3f = anisotropicB;\n let anisotropicTangent: vec3f = cross(anisotropicDirection, viewDir);\n let anisotropicNormal: vec3f = cross(anisotropicTangent, anisotropicDirection);\n let bendFactor: f32 = 1.0 - anisotropy * (1.0 - roughness);\n let bendFactor4: f32 = bendFactor * bendFactor * bendFactor * bendFactor;\n let bentNormal: vec3f = normalize(mix(normalize(anisotropicNormal), normalize(worldNormal), bendFactor4));\n dReflDirW = reflect(-viewDir, bentNormal);\n}"; export default _default;