Color
Math of Color
Calculation
Color to Brightness (luminance)
Color color = new Color(0.8f, 0.26f, 0.78f);
var r = color.r * 0.2126f;
var g = color.g * 0.7152f;
var b = color.b * 0.0722f;
var brightness = r + g + b;// extension method
public float Brightness(this Color color, bool gammaCorrection = false)
{
// Apply gamma correction if necessary
var r = gammaCorrection ? Linearize(color.r) : color.r;
var g = gammaCorrection ? Linearize(color.g) : color.g;
var b = gammaCorrection ? Linearize(color.b) : color.b;
// Calculate relative luminance using ITU-R BT.709 weights
var brightness = r * 0.2126f + g * 0.7152f + b * 0.0722f;
return brightness;
// Helper function to linearize sRGB values
float Linearize(float value)
{
return value <= 0.04045f
? value / 12.92f
: Mathf.Pow((value + 0.055f) / 1.055f, 2.4f);
}
}
Last updated