@@ -3882,10 +3882,13 @@ Planet::RenderData Planet::setCommonShaderUniforms(const StelPainter& painter, Q
38823882 GL (shader->setUniformValue (shaderVars.tex , 0 ));
38833883 GL (shader->setUniformValue (shaderVars.shadowCount , static_cast <GLint>(data.shadowCandidates .size ())));
38843884 GL (shader->setUniformValue (shaderVars.shadowData , data.shadowCandidatesData ));
3885- GL (shader->setUniformValue (shaderVars.sunInfo , static_cast <GLfloat>(data.mTarget [12 ]),
3886- static_cast <GLfloat>(data.mTarget [13 ]),
3887- static_cast <GLfloat>(data.mTarget [14 ]),
3888- static_cast <GLfloat>(sun->getEquatorialRadius ())));
3885+ if (this !=sun)
3886+ {
3887+ GL (shader->setUniformValue (shaderVars.sunInfo , static_cast <GLfloat>(data.mTarget [12 ]),
3888+ static_cast <GLfloat>(data.mTarget [13 ]),
3889+ static_cast <GLfloat>(data.mTarget [14 ]),
3890+ static_cast <GLfloat>(sun->getEquatorialRadius ())));
3891+ }
38893892 GL (shader->setUniformValue (shaderVars.skyBrightness , lmgr->getAtmosphereAverageLuminance ()));
38903893 GL (shader->setUniformValue (shaderVars.poleLat , 1 .1f , -0 .1f )); // Avoid white objects. poleLat is only used for Mars.
38913894
@@ -3956,15 +3959,6 @@ void Planet::drawSphere(StelPainter* painter, float screenRd, bool drawOnlyRing)
39563959
39573960 const SolarSystem* ssm = GETSTELMODULE (SolarSystem);
39583961
3959- if (this ==ssm->getSun ())
3960- {
3961- texMap->bind ();
3962- // painter->setColor(2, 2, 0.2); // This is now in draw3dModel() to apply extinction
3963- painter->setArrays (reinterpret_cast <const Vec3f*>(projectedVertexArr.constData ()), reinterpret_cast <const Vec2f*>(model.texCoordArr .constData ()));
3964- painter->drawFromArray (StelPainter::Triangles, model.indiceArr .size (), 0 , false , model.indiceArr .constData ());
3965- return ;
3966- }
3967-
39683962 // cancel out if shaders are invalid
39693963 if (shaderError)
39703964 return ;
@@ -4006,6 +4000,11 @@ void Planet::drawSphere(StelPainter* painter, float screenRd, bool drawOnlyRing)
40064000 GL (shader->bind ());
40074001
40084002 RenderData rData = setCommonShaderUniforms (*painter,shader,*shaderVars);
4003+ if (this ==ssm->getSun ())
4004+ {
4005+ const auto color = painter->getColor ();
4006+ GL (shader->setUniformValue (shaderVars->sunInfo , color[0 ], color[1 ], color[2 ], 0 .f ));
4007+ }
40094008
40104009 if (rings!=Q_NULLPTR )
40114010 {
0 commit comments