UNPKG

playcanvas

Version:

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

20 lines (19 loc) 852 B
var reflDirAniso_default = ` void getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) { float roughness = sqrt(1.0 - min(gloss, 1.0)); vec2 direction = dAnisotropyRotation; vec3 anisotropicT = normalize(tbn * vec3(direction, 0.0)); vec3 anisotropicB = normalize(cross(tbn[2], anisotropicT)); float anisotropy = dAnisotropy; vec3 anisotropicDirection = anisotropicB; vec3 anisotropicTangent = cross(anisotropicDirection, viewDir); vec3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection); float bendFactor = 1.0 - anisotropy * (1.0 - roughness); float bendFactor4 = bendFactor * bendFactor * bendFactor * bendFactor; vec3 bentNormal = normalize(mix(normalize(anisotropicNormal), normalize(worldNormal), bendFactor4)); dReflDirW = reflect(-viewDir, bentNormal); } `; export { reflDirAniso_default as default };