Allow to disable and enable planet rings (Closes: #47)

no-min-eclipsing-size
Hleb Valoshka 2018-11-12 20:15:48 +03:00 committed by pirogronian
parent 2e654e451b
commit e40b9549a7
7 changed files with 15 additions and 5 deletions

View File

@ -0,0 +1,3 @@
celestia:hide("planetrings")
wait(5)
celestia:show("planetrings")

View File

@ -4817,7 +4817,9 @@ void Renderer::renderObject(const Vector3f& pos,
} }
} }
if (obj.rings != nullptr && distance <= obj.rings->innerRadius) if (obj.rings != nullptr &&
(renderFlags & ShowPlanetRings) != 0 &&
distance <= obj.rings->innerRadius)
{ {
renderRings_GLSL(*obj.rings, ri, ls, renderRings_GLSL(*obj.rings, ri, ls,
radius, 1.0f - obj.semiAxes.y(), radius, 1.0f - obj.semiAxes.y(),
@ -4971,7 +4973,7 @@ void Renderer::renderObject(const Vector3f& pos,
} }
} }
if (obj.rings != nullptr) if (obj.rings != nullptr && (renderFlags & ShowPlanetRings) != 0)
{ {
if ((obj.surface->appearanceFlags & Surface::Emissive) == 0 && if ((obj.surface->appearanceFlags & Surface::Emissive) == 0 &&
(renderFlags & ShowRingShadows) != 0) (renderFlags & ShowRingShadows) != 0)
@ -5242,7 +5244,9 @@ void Renderer::renderPlanet(Body& body,
// Add ring shadow records for each light // Add ring shadow records for each light
if (body.getRings() && (renderFlags & ShowRingShadows) != 0) if (body.getRings() &&
(renderFlags & ShowPlanetRings) != 0 &&
(renderFlags & ShowRingShadows) != 0)
{ {
for (unsigned int li = 0; li < lights.nLights; li++) for (unsigned int li = 0; li < lights.nLights; li++)
{ {

View File

@ -156,7 +156,7 @@ class Renderer
ShowAtmospheres = 0x0100, ShowAtmospheres = 0x0100,
ShowSmoothLines = 0x0200, ShowSmoothLines = 0x0200,
ShowEclipseShadows = 0x0400, ShowEclipseShadows = 0x0400,
ShowStarsAsPoints = 0x0800, ShowPlanetRings = 0x0800,
ShowRingShadows = 0x1000, ShowRingShadows = 0x1000,
ShowBoundaries = 0x2000, ShowBoundaries = 0x2000,
ShowAutoMag = 0x4000, ShowAutoMag = 0x4000,
@ -190,6 +190,7 @@ class Renderer
Renderer::ShowCloudMaps | Renderer::ShowCloudMaps |
Renderer::ShowAtmospheres | Renderer::ShowAtmospheres |
Renderer::ShowEclipseShadows | Renderer::ShowEclipseShadows |
Renderer::ShowPlanetRings |
Renderer::ShowRingShadows | Renderer::ShowRingShadows |
Renderer::ShowCometTails | Renderer::ShowCometTails |
Renderer::ShowNebulae | Renderer::ShowNebulae |

View File

@ -119,6 +119,7 @@ void CelxLua::initRenderFlagMap()
RenderFlagMap["stars"] = Renderer::ShowStars; RenderFlagMap["stars"] = Renderer::ShowStars;
RenderFlagMap["nightmaps"] = Renderer::ShowNightMaps; RenderFlagMap["nightmaps"] = Renderer::ShowNightMaps;
RenderFlagMap["eclipseshadows"] = Renderer::ShowEclipseShadows; RenderFlagMap["eclipseshadows"] = Renderer::ShowEclipseShadows;
RenderFlagMap["planetrings"] = Renderer::ShowPlanetRings;
RenderFlagMap["ringshadows"] = Renderer::ShowRingShadows; RenderFlagMap["ringshadows"] = Renderer::ShowRingShadows;
RenderFlagMap["comettails"] = Renderer::ShowCometTails; RenderFlagMap["comettails"] = Renderer::ShowCometTails;
RenderFlagMap["boundaries"] = Renderer::ShowBoundaries; RenderFlagMap["boundaries"] = Renderer::ShowBoundaries;

View File

@ -1310,7 +1310,6 @@ void resyncRenderActions(AppData* app)
case Renderer::ShowAtmospheres: actionName = "RenderAtmospheres"; break; case Renderer::ShowAtmospheres: actionName = "RenderAtmospheres"; break;
case Renderer::ShowSmoothLines: actionName = "RenderAA"; break; case Renderer::ShowSmoothLines: actionName = "RenderAA"; break;
case Renderer::ShowEclipseShadows: actionName = "RenderEclipseShadows"; break; case Renderer::ShowEclipseShadows: actionName = "RenderEclipseShadows"; break;
case Renderer::ShowStarsAsPoints: actionName = NULL; break; /* Deprecated */
case Renderer::ShowRingShadows: actionName = "RenderRingShadows"; break; case Renderer::ShowRingShadows: actionName = "RenderRingShadows"; break;
case Renderer::ShowBoundaries: actionName = "RenderConstellationBoundaries"; break; case Renderer::ShowBoundaries: actionName = "RenderConstellationBoundaries"; break;
case Renderer::ShowAutoMag: actionName = "RenderAutoMagnitude"; break; case Renderer::ShowAutoMag: actionName = "RenderAutoMagnitude"; break;

View File

@ -280,6 +280,7 @@ void setDefaultRenderFlags(AppData* app)
Renderer::ShowPlanets | Renderer::ShowPlanets |
Renderer::ShowSmoothLines | Renderer::ShowSmoothLines |
Renderer::ShowCometTails | Renderer::ShowCometTails |
Renderer::ShowPlanetRings |
Renderer::ShowRingShadows | Renderer::ShowRingShadows |
Renderer::ShowCloudMaps | Renderer::ShowCloudMaps |
Renderer::ShowRingShadows | Renderer::ShowRingShadows |

View File

@ -53,6 +53,7 @@ const int DEFAULT_RENDER_FLAGS =
Renderer::ShowCloudMaps | Renderer::ShowCloudMaps |
Renderer::ShowAtmospheres | Renderer::ShowAtmospheres |
Renderer::ShowEclipseShadows | Renderer::ShowEclipseShadows |
Renderer::ShowPlanetRings |
Renderer::ShowRingShadows | Renderer::ShowRingShadows |
Renderer::ShowCometTails | Renderer::ShowCometTails |
Renderer::ShowNebulae | Renderer::ShowNebulae |