// PBR HELPER METHODS float Square(float value) { return value * value; } float getLuminance(vec3 color) { return clamp(dot(color, vec3(0.2126, 0.7152, 0.0722)), 0., 1.); } float convertRoughnessToAverageSlope(float roughness) { // Calculate AlphaG as square of roughness; add epsilon to avoid numerical issues const float kMinimumVariance = 0.0005; float alphaG = Square(roughness) + kMinimumVariance; return alphaG; }