From 06787e4f77247ddaa2e2ff9d0348080b5f9c2572 Mon Sep 17 00:00:00 2001 From: Gene Payne Date: Fri, 29 Jan 2021 10:17:13 -0700 Subject: [PATCH] Globebrowsing Fade-In/Out Fix and Assets Updates (Issue #1209) (#1476) * Fixed fade out algorithm to use correct distance from globe center * Updated planet labels in asset files to match fixed fade-out algorithm * Changed variable name and removed mistakenly-added file --- .../dwarf_planets/pluto/charon/charon.asset | 9 +++++---- .../scene/solarsystem/dwarf_planets/pluto/pluto.asset | 9 +++++---- .../assets/scene/solarsystem/planets/earth/earth.asset | 10 +++++----- .../scene/solarsystem/planets/earth/moon/moon.asset | 3 ++- .../planets/jupiter/callisto/callisto.asset | 3 ++- .../solarsystem/planets/jupiter/europa/europa.asset | 9 +++++---- .../planets/jupiter/ganymede/ganymede.asset | 7 ++++--- .../scene/solarsystem/planets/jupiter/io/io.asset | 9 +++++---- data/assets/scene/solarsystem/planets/mars/mars.asset | 9 +++++---- .../scene/solarsystem/planets/mercury/mercury.asset | 8 +++++--- .../scene/solarsystem/planets/saturn/dione/dione.asset | 7 ++++--- .../planets/saturn/enceladus/enceladus.asset | 9 +++++---- .../solarsystem/planets/saturn/iapetus/iapetus.asset | 9 +++++---- .../scene/solarsystem/planets/saturn/mimas/mimas.asset | 7 ++++--- .../scene/solarsystem/planets/saturn/rhea/rhea.asset | 7 ++++--- .../solarsystem/planets/saturn/tethys/tethys.asset | 9 +++++---- .../scene/solarsystem/planets/saturn/titan/titan.asset | 7 ++++--- .../assets/scene/solarsystem/planets/venus/venus.asset | 10 ++++++---- modules/globebrowsing/src/globelabelscomponent.cpp | 6 +++--- 19 files changed, 83 insertions(+), 64 deletions(-) diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset index 35e6fe6436..4b6aa574c2 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/charon/charon.asset @@ -31,16 +31,17 @@ local Charon = { Enable = false, FileName = labelsPath .. "/charon.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 14.0, + LabelsFontSize = 40.0, LabelsSize = 8.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 2000000.0, + FadeOutStartingDistance = 800000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 250000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset index 667c201781..5299ebc5dd 100644 --- a/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset +++ b/data/assets/scene/solarsystem/dwarf_planets/pluto/pluto.asset @@ -31,16 +31,17 @@ local Pluto = { Enable = false, FileName = labelsPath .. "/pluto.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 14.0, + LabelsFontSize = 28.0, LabelsSize = 8.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 4000000.0, + FadeOutStartingDistance = 650000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 500000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/earth/earth.asset b/data/assets/scene/solarsystem/planets/earth/earth.asset index b4f793cc69..e66cb53329 100644 --- a/data/assets/scene/solarsystem/planets/earth/earth.asset +++ b/data/assets/scene/solarsystem/planets/earth/earth.asset @@ -26,15 +26,15 @@ local Earth = { Enable = false, FileName = labelsPath .. "/Earth.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 41.0, - LabelsSize = 0.52, + LabelsFontSize = 40.0, + LabelsSize = 4.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - LabelsFadeOutEnabled = false, - FadeInStartingDistance = 50000.0, - FadeOutStartingDistance = 80000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 300000.0, + FadeOutStartingDistance = 10000.0, LabelsForceDomeRendering = true, LabelsDistanceEPS = 1500000.0, LabelsColor = { 1.0, 0.0, 0.0 } diff --git a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset index ace7442735..160b880246 100644 --- a/data/assets/scene/solarsystem/planets/earth/moon/moon.asset +++ b/data/assets/scene/solarsystem/planets/earth/moon/moon.asset @@ -43,8 +43,9 @@ local Moon = { LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, + LabelsFadeOutEnabled = true, FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + FadeOutStartingDistance = 100000.0, LabelsForceDomeRendering = true, LabelsDistanceEPS = 1350000.0, LabelsColor = { 1.0, 1.0, 0.0 } diff --git a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset index 09c2888303..580e6c72ca 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/callisto/callisto.asset @@ -37,8 +37,9 @@ local Callisto = { LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, + LabelsFadeOutEnabled = true, FadeInStartingDistance = 15000000.0, - FadeOutStartingDistance = 1000000.0, + FadeOutStartingDistance = 5000000.0, LabelsForceDomeRendering = true, LabelsDistanceEPS = 1350000.0, LabelsColor = { 1.0, 1.0, 0.0 } diff --git a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset index 6be8e60814..d3e29eba08 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/europa/europa.asset @@ -32,15 +32,16 @@ local Europa = { FileName = labelsPath .. "/europa.labels", LabelAlignmentOption = "Horizontally", -- or Circularly LabelsFontSize = 40.0, - LabelsSize = 10.5, + LabelsSize = 10.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 15000000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 8000000.0, + FadeOutStartingDistance = 5000000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 700000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset index c93b359f3e..0e53d189d1 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/ganymede/ganymede.asset @@ -37,10 +37,11 @@ local Ganymede = { LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 15000000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 8000000.0, + FadeOutStartingDistance = 2250000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 1750000.0, LabelsColor = {1.0, 1.0, 0.0} } }, diff --git a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset index e64cbfe431..20f2d5a2b6 100644 --- a/data/assets/scene/solarsystem/planets/jupiter/io/io.asset +++ b/data/assets/scene/solarsystem/planets/jupiter/io/io.asset @@ -32,15 +32,16 @@ local Io = { FileName = labelsPath .. "/io.labels", LabelAlignmentOption = "Horizontally", -- or Circularly LabelsFontSize = 40.0, - LabelsSize = 10.5, + LabelsSize = 10.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 15000000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 8500000.0, + FadeOutStartingDistance = 4000000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 1000000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/mars/mars.asset b/data/assets/scene/solarsystem/planets/mars/mars.asset index 8bdd08008d..e96320563a 100644 --- a/data/assets/scene/solarsystem/planets/mars/mars.asset +++ b/data/assets/scene/solarsystem/planets/mars/mars.asset @@ -27,15 +27,16 @@ local Mars = { FileName = labelsPath .. "/mars.labels", LabelAlignmentOption = "Horizontally", -- or Circularly LabelsFontSize = 14.0, - LabelsSize = 8.0, + LabelsSize = 9.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 2000000.0, + FadeOutStartingDistance = 750000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 2500000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/mercury/mercury.asset b/data/assets/scene/solarsystem/planets/mercury/mercury.asset index c2a9ca1584..4ce1efa083 100644 --- a/data/assets/scene/solarsystem/planets/mercury/mercury.asset +++ b/data/assets/scene/solarsystem/planets/mercury/mercury.asset @@ -27,13 +27,15 @@ local Mercury = { Enable = false, FileName = labelsPath .. "/Mercury.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 40.0, + LabelsFontSize = 22.0, LabelsSize = 10.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, - FadeInStartingDistance = 40000000.0, - FadeOutStartingDistance = 80000.0, + LabelsFadeInEnabled = true, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 5000000.0, + FadeOutStartingDistance = 1800000.0, LabelsForceDomeRendering = true, LabelsDistanceEPS = 1500000.0, LabelsColor = { 1.0, 1.0, 0.0 } diff --git a/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset index bee85a6396..34b711430c 100644 --- a/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset +++ b/data/assets/scene/solarsystem/planets/saturn/dione/dione.asset @@ -29,16 +29,17 @@ local Dione = { Enable = false, FileName = labelsPath .. "/dione.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 14.0, + LabelsFontSize = 32.0, LabelsSize = 8.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 3500000.0, FadeOutStartingDistance = 1000000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 200000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset index bb66e85ba2..4dd5e1cff5 100644 --- a/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/enceladus/enceladus.asset @@ -29,16 +29,17 @@ local Enceladus = { Enable = false, FileName = labelsPath .. "/enceladus.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 14.0, + LabelsFontSize = 22.0, LabelsSize = 8.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 1000000.0, + FadeOutStartingDistance = 500000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 100000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset index ec01d7b69a..fbe22a9aec 100644 --- a/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset +++ b/data/assets/scene/solarsystem/planets/saturn/iapetus/iapetus.asset @@ -29,16 +29,17 @@ local Iapetus = { Enable = false, FileName = labelsPath .. "/iapetus.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 14.0, + LabelsFontSize = 30.0, LabelsSize = 8.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 3500000.0, + FadeOutStartingDistance = 600000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 250000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset index 1ba8d19d3f..7f1b4efab1 100644 --- a/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset +++ b/data/assets/scene/solarsystem/planets/saturn/mimas/mimas.asset @@ -35,10 +35,11 @@ local Mimas = { LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 1000000.0, + FadeOutStartingDistance = 400000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 25000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset index fbbe12a40d..83792b1a33 100644 --- a/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset +++ b/data/assets/scene/solarsystem/planets/saturn/rhea/rhea.asset @@ -29,16 +29,17 @@ local Rhea = { Enable = false, FileName = labelsPath .. "/rhea.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 14.0, + LabelsFontSize = 40.0, LabelsSize = 8.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 2500000.0, FadeOutStartingDistance = 1000000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 250000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset index e4440665df..18a97e75c3 100644 --- a/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset +++ b/data/assets/scene/solarsystem/planets/saturn/tethys/tethys.asset @@ -29,16 +29,17 @@ local Tethys = { Enable = false, FileName = labelsPath .. "/tethys.labels", LabelAlignmentOption = "Horizontally", -- or Circularly - LabelsFontSize = 14.0, + LabelsFontSize = 24.0, LabelsSize = 8.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 1500000.0, + FadeOutStartingDistance = 500000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 1350000.0, + LabelsDistanceEPS = 200000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset index dd947f3214..eaa851c833 100644 --- a/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset +++ b/data/assets/scene/solarsystem/planets/saturn/titan/titan.asset @@ -30,13 +30,14 @@ local Titan = { FileName = labelsPath .. "/titan.labels", LabelAlignmentOption = "Horizontally", -- or Circularly LabelsFontSize = 14.0, - LabelsSize = 8.0, + LabelsSize = 10.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 7500000.0, + FadeOutStartingDistance = 6000000.0, LabelsForceDomeRendering = true, LabelsDistanceEPS = 1350000.0, LabelsColor = { 1.0, 1.0, 0.0 } diff --git a/data/assets/scene/solarsystem/planets/venus/venus.asset b/data/assets/scene/solarsystem/planets/venus/venus.asset index 0f4c1cbe9f..b1bb529e58 100644 --- a/data/assets/scene/solarsystem/planets/venus/venus.asset +++ b/data/assets/scene/solarsystem/planets/venus/venus.asset @@ -30,15 +30,17 @@ local Venus = { FileName = labelsPath .. "/venus.labels", LabelAlignmentOption = "Horizontally", -- or Circularly LabelsFontSize = 40.0, - LabelsSize = 12.0, + LabelsSize = 10.0, LabelsMinSize = 1.0, LabelsMaxSize = 1500.0, ProximityEnabled = false, LabelsFadeInEnabled = true, - FadeInStartingDistance = 500000.0, - FadeOutStartingDistance = 1000000.0, + LabelsFadeInEnabled = true, + LabelsFadeOutEnabled = true, + FadeInStartingDistance = 7000000.0, + FadeOutStartingDistance = 2000000.0, LabelsForceDomeRendering = true, - LabelsDistanceEPS = 3500000.0, + LabelsDistanceEPS = 4000000.0, LabelsColor = { 1.0, 1.0, 0.0 } } }, diff --git a/modules/globebrowsing/src/globelabelscomponent.cpp b/modules/globebrowsing/src/globelabelscomponent.cpp index 549f4d5a4d..944f9ff220 100644 --- a/modules/globebrowsing/src/globelabelscomponent.cpp +++ b/modules/globebrowsing/src/globelabelscomponent.cpp @@ -50,7 +50,7 @@ namespace { constexpr const char* KeyLabelsFileName = "FileName"; - constexpr const double LabelFadeRangeConst = 1500.0; + constexpr const double LabelFadeOutLimitAltitudeMeters = 25000.0; constexpr const double RangeAngularCoefConst = 0.8; constexpr const float MinOpacityValueConst = 0.009f; @@ -674,10 +674,10 @@ void GlobeLabelsComponent::draw(const RenderData& data) { if (_labelsFadeOutEnabled) { glm::dvec2 fadeRange = glm::dvec2( - averageRadius + _labelsMinHeight + LabelFadeRangeConst + averageRadius + _labelsMinHeight + LabelFadeOutLimitAltitude_meters ); fadeRange.x += _labelsFadeOutDist; - double a = RangeAngularCoefConst / (fadeRange.x - fadeRange.y); + double a = 1.0 / (fadeRange.x - fadeRange.y); double b = -(fadeRange.y / (fadeRange.x - fadeRange.y)); double funcValue = a * distanceCameraGlobeWorld + b; varyingOpacity *= static_cast(std::min(funcValue, 1.0));