diff --git a/Source/EmberCommon/EmberCommon.h b/Source/EmberCommon/EmberCommon.h index 71c56ad..0093d54 100644 --- a/Source/EmberCommon/EmberCommon.h +++ b/Source/EmberCommon/EmberCommon.h @@ -229,6 +229,7 @@ static void Rgba32ToRgba16(v4F* rgba, glm::uint16* rgb, size_t width, size_t hei /// /// Convert an RGBA 32-bit float buffer to an EXR RGBA 32-bit float buffer. /// The two buffers can point to the same memory location if needed. +/// Note that this squares the values coming in, for some reason EXR expects that. /// /// The RGBA 32-bit float buffer /// The EXR RGBA 32-bit float buffer @@ -239,9 +240,9 @@ static void Rgba32ToRgbaExr(v4F* rgba, Rgba* ilmfRgba, size_t width, size_t heig { for (size_t i = 0; i < (width * height); i++) { - ilmfRgba[i].r = Clamp(rgba[i].r, 0.0f, 1.0f); - ilmfRgba[i].g = Clamp(rgba[i].g, 0.0f, 1.0f); - ilmfRgba[i].b = Clamp(rgba[i].b, 0.0f, 1.0f); + ilmfRgba[i].r = Clamp(Sqr(rgba[i].r), 0.0f, 1.0f); + ilmfRgba[i].g = Clamp(Sqr(rgba[i].g), 0.0f, 1.0f); + ilmfRgba[i].b = Clamp(Sqr(rgba[i].b), 0.0f, 1.0f); ilmfRgba[i].a = doAlpha ? Clamp(rgba[i].a * 1.0f, 0.0f, 1.0f) : 1.0f; } }