lygia
/v1.1.6
/lighting
/common
/beckmann
)Dependencies:
// https://github.com/glslify/glsl-specular-beckmann
#ifndef FNC_BECKMANN
#define FNC_BECKMANN
float beckmann(const in float _NoH, const in float roughness) {
float NoH = max(_NoH, 0.0001);
float cos2Alpha = NoH * NoH;
float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;
float roughness2 = roughness * roughness;
float denom = PI * roughness2 * cos2Alpha * cos2Alpha;
return exp(tan2Alpha / roughness2) / denom;
}
float beckmann(const vec3 _N, const vec3 _H, const in float _NoH, const in float roughness) {
return beckmann(_NoH, roughness);
}
#endif
#ifndef FNC_BECKMANN
#define FNC_BECKMANN
float beckmann(float _NoH, float roughness) {
float NoH = max(_NoH, 0.0001);
float cos2Alpha = NoH * NoH;
float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;
float roughness2 = roughness * roughness;
float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;
return exp(tan2Alpha / roughness2) / denom;
}
#endif
LYGIA is dual-licensed under the Prosperity License and the Patron License for sponsors and contributors.
Sponsors and contributors are automatically added to the Patron License and they can ignore the any non-commercial rule of the Prosperity Licensed software (please take a look to the exception).
It's also possible to get a permanent comercial license hook to a single and specific version of LYGIA.
Sign up for the news letter bellow, joing the LYGIA's channel on Discord or follow the Github repository