From e9fc7ef85c68366f18a75a94b64f93de8d349cc5 Mon Sep 17 00:00:00 2001 From: Ruslan Kabatsayev Date: Sat, 8 Apr 2023 17:34:29 +0400 Subject: [PATCH] Fix brightness of stars --- src/core/StelSkyDrawer.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/core/StelSkyDrawer.cpp b/src/core/StelSkyDrawer.cpp index f9e2a87712b3b9..e2bc01b0a15ab2 100644 --- a/src/core/StelSkyDrawer.cpp +++ b/src/core/StelSkyDrawer.cpp @@ -25,6 +25,7 @@ #include "StelToneReproducer.hpp" #include "StelTextureMgr.hpp" #include "StelApp.hpp" +#include "StelSRGB.hpp" #include "StelCore.hpp" #include "StelMovementMgr.hpp" #include "StelPainter.hpp" @@ -496,14 +497,16 @@ bool StelSkyDrawer::drawPointSource(StelPainter* sPainter, const Vec3d& v, const texBigHalo->bind(); sPainter->setBlending(true, GL_ONE, GL_ONE); - sPainter->setColor(color*cmag); + sPainter->setColor(srgbToLinear(color*cmag)); sPainter->drawSprite2dModeNoDeviceScale(win[0], win[1], rmag); } - unsigned char starColor[3] = {0, 0, 0}; - starColor[0] = static_cast(std::min(static_cast(color[0]*tw*255+0.5f), 255)); - starColor[1] = static_cast(std::min(static_cast(color[1]*tw*255+0.5f), 255)); - starColor[2] = static_cast(std::min(static_cast(color[2]*tw*255+0.5f), 255)); + const auto starColorVec = srgbToLinear(color*tw+Vec3f(0.5/255,0.5/255,0.5/255))*255; + const uint8_t starColor[3] = { + static_cast(std::min(starColorVec[0], 255.f)), + static_cast(std::min(starColorVec[1], 255.f)), + static_cast(std::min(starColorVec[2], 255.f)), + }; // Store the drawing instructions in the vertex arrays StarVertex* vx = &(vertexArray[nbPointSources*6]);