here are two functions to convert sRGB to linear and back:
UFUNCTION(BlueprintPure, Category = "Color Conversion")
static float sRGBToLinear(float Value)
{
if (Value >= 0.04045f)
{
return FMath::Pow((Value + 0.055f) / 1.055f, 2.4f);
}
else
{
return Value / 12.92f;
}
}
and opposite:
UFUNCTION(BlueprintPure, Category = "Color Conversion")
static float LinearToSRGB(float LinearValue)
{
const float Gamma = 2.2f;
return FMath::Clamp(FMath::Pow(LinearValue, 1.0f / Gamma), 0.0f, 1.0f);
}
Those are static so should be placed in C++ blueprint function library. Or just make them in BPs.