playcanvas
Version:
PlayCanvas WebGL game engine
4 lines (2 loc) • 602 B
JavaScript
var reflDirAnisoPS = "\nvoid getReflDir(vec3 worldNormal, vec3 viewDir, float gloss, mat3 tbn) {\n float roughness = sqrt(1.0 - min(gloss, 1.0));\n float anisotropy = material_anisotropy * roughness;\n vec3 anisotropicDirection = anisotropy >= 0.0 ? tbn[1] : tbn[0];\n vec3 anisotropicTangent = cross(anisotropicDirection, viewDir);\n vec3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection);\n vec3 bentNormal = normalize(mix(normalize(worldNormal), normalize(anisotropicNormal), anisotropy));\n dReflDirW = reflect(-viewDir, bentNormal);\n}\n";
export { reflDirAnisoPS as default };