declare const _default: "\n// Anisotropic GGX\nfloat calcLightSpecular(float gloss, vec3 worldNormal, vec3 viewDir, vec3 h, vec3 lightDirNorm, mat3 tbn) {\n    float PI = 3.141592653589793;\n    float roughness = max((1.0 - gloss) * (1.0 - gloss), 0.001);\n    float anisotropy = material_anisotropy * roughness;\n \n    float at = max((roughness + anisotropy), roughness / 4.0);\n    float ab = max((roughness - anisotropy), roughness / 4.0);\n\n    float NoH = dot(worldNormal, h);\n    float ToH = dot(tbn[0], h);\n    float BoH = dot(tbn[1], h);\n\n    float a2 = at * ab;\n    vec3 v = vec3(ab * ToH, at * BoH, a2 * NoH);\n    float v2 = dot(v, v);\n    float w2 = a2 / v2;\n    float D = a2 * w2 * w2 * (1.0 / PI);\n\n    float ToV = dot(tbn[0], viewDir);\n    float BoV = dot(tbn[1], viewDir);\n    float ToL = dot(tbn[0], -lightDirNorm);\n    float BoL = dot(tbn[1], -lightDirNorm);\n    float NoV = dot(worldNormal, viewDir);\n    float NoL = dot(worldNormal, -lightDirNorm);\n\n    float lambdaV = NoL * length(vec3(at * ToV, ab * BoV, NoV));\n    float lambdaL = NoV * length(vec3(at * ToL, ab * BoL, NoL));\n    float G = 0.5 / (lambdaV + lambdaL);\n\n    return D * G;\n}\n\nfloat getLightSpecular(vec3 h, vec3 reflDir, vec3 worldNormal, vec3 viewDir, vec3 lightDirNorm, float gloss, mat3 tbn) {\n    return calcLightSpecular(gloss, worldNormal, viewDir, h, lightDirNorm, tbn);\n}\n";
export default _default;
