diff --git a/light/ltface.cc b/light/ltface.cc index 4c7098c5..a9de5f6f 100644 --- a/light/ltface.cc +++ b/light/ltface.cc @@ -2242,6 +2242,27 @@ LightmapToGLMVector(const bsp2_t *bsp, const lightsurf_t *lightsurf) return std::vector(); } +static glm::vec3 +LinearToGamma22(const glm::vec3 &c) { + return glm::pow(c, glm::vec3(1/2.2f)); +} + +static glm::vec3 +Gamma22ToLinear(const glm::vec3 &c) { + return glm::pow(c, glm::vec3(2.2f)); +} + +void GLMVector_GammaToLinear(std::vector &vec) { + for (auto &v : vec) { + v = Gamma22ToLinear(v); + } +} + +void GLMVector_LinearToGamma(std::vector &vec) { + for (auto &v : vec) { + v = LinearToGamma22(v); + } +} static std::vector IntegerDownsampleImage(const std::vector &input, int w, int h, int factor)