diff --git a/data/scene/default-moon.scene b/data/scene/default-moon.scene index 4cc8a52f47..28aedfbbe9 100644 --- a/data/scene/default-moon.scene +++ b/data/scene/default-moon.scene @@ -19,16 +19,16 @@ function preInitialization() -- 6:20 -> 23:20 day before in UTC ]]-- - --openspace.time.setTime("2016-03-08T22:45:00") + openspace.time.setTime("2016-03-08T22:45:00") -- Total Lunar Eclipse Jan 31, 2018 at 10:51:13 UTC -- Regions seeing, at least, some parts of the eclipse: North/East Europe, -- Asia, Australia, North/East Africa, North America, North/East South America, -- Pacific, Atlantic, Indian Ocean, Arctic, Antarctica. - openspace.time.setTime("2018-01-31T10:30:00") + --openspace.time.setTime("2018-01-31T10:30:00") - openspace.time.setDeltaTime(200.0) + --openspace.time.setDeltaTime(200.0) dofile(openspace.absPath('${SCRIPTS}/bind_keys.lua')) end @@ -56,8 +56,8 @@ return { ScenePath = ".", CommonFolder = "common", Camera = { - --Focus = "Earth", - Focus = "Moon", + Focus = "Earth", + --Focus = "Moon", Position = {1, 0, 0, 5}, }, Modules = { diff --git a/data/scene/earth/earth.mod b/data/scene/earth/earth.mod index e6cf169af9..725f9bd516 100644 --- a/data/scene/earth/earth.mod +++ b/data/scene/earth/earth.mod @@ -30,11 +30,13 @@ return { Shadow_Group = { Source1 = { Name = "Sun", + -- All radius in meters Radius = {696.3, 6} }, --Source2 = { Name = "Monolith", Radius = {0.01, 6} }, Caster1 = { Name = "Moon", + -- All radius in meters Radius = {1.737, 6} }, --Caster2 = { Name = "Independency Day Ship", Radius = {0.0, 0.0} } diff --git a/modules/base/rendering/renderableplanet.cpp b/modules/base/rendering/renderableplanet.cpp index 0d41611585..2246a7f38c 100644 --- a/modules/base/rendering/renderableplanet.cpp +++ b/modules/base/rendering/renderableplanet.cpp @@ -330,13 +330,6 @@ void RenderablePlanet::render(const RenderData& data) // setup the data to the shader double lt; - glm::dvec3 p = - SpiceManager::ref().targetPosition("SUN", _target, "GALACTIC", {}, _time, lt); - p *= 1000.0; // from Km to m - psc sun_pos = PowerScaledCoordinate::CreatePowerScaledCoordinate(p.x, p.y, p.z); - - //_programObject->setUniform("light_dir", sun_pos.vec4()); - glm::dvec3 pt = SpiceManager::ref().targetPosition(_target, "SUN", "GALACTIC", {}, _time, lt); psc tmppos = PowerScaledCoordinate::CreatePowerScaledCoordinate(pt.x, pt.y, pt.z); @@ -409,9 +402,13 @@ void RenderablePlanet::render(const RenderData& data) float xp_test = shadowConf.caster.second * sc_length / (shadowConf.source.second + shadowConf.caster.second); float rp_test = shadowConf.caster.second * (glm::length(planetCaster_proj) + xp_test) / xp_test; + float casterDistSun = glm::length(casterPos); + float planetDistSun = glm::length(data.position.vec3()); + ShadowRenderingStruct shadowData; shadowData.isShadowing = false; - if ((d_test - rp_test) < _planetRadius) { + if (((d_test - rp_test) < _planetRadius) && + (casterDistSun < planetDistSun) ) { // The current caster is shadowing the current planet shadowData.isShadowing = true; shadowData.rs = shadowConf.source.second; diff --git a/modules/base/shaders/shadow_fs.glsl b/modules/base/shaders/shadow_fs.glsl index 58c76ca1a9..056d8c6c00 100644 --- a/modules/base/shaders/shadow_fs.glsl +++ b/modules/base/shaders/shadow_fs.glsl @@ -74,14 +74,14 @@ vec4 calcShadow(const ShadowRenderingStruct shadowInfoArray[numberOfShadows], co float r_u_pi = shadowInfoArray[0].rc * (shadowInfoArray[0].xu - length_pc_proj) / shadowInfoArray[0].xu; if ( length_d < r_u_pi ) { // umbra - return vec4(0.0, 0.0, 0.0, 1.0); + //return vec4(0.0, 0.0, 0.0, 1.0); //return vec4(1.0, 0.0, 0.0, 1.0); - //return butterworthFunc(length_d, r_u_pi, 4.0); + return butterworthFunc(length_d, r_u_pi, 4.0); } else if ( length_d < r_p_pi ) {// penumbra - return vec4(0.5, 0.5, 0.5, 1.0); + //return vec4(0.5, 0.5, 0.5, 1.0); //return vec4(0.0, 1.0, 0.0, 1.0); - //return vec4(vec3(length_d/r_p_pi), 1.0); + return vec4(vec3(length_d/r_p_pi), 1.0); } } diff --git a/modules/base/shaders/shadow_nighttexture_fs.glsl b/modules/base/shaders/shadow_nighttexture_fs.glsl index ed5a2d1389..2400d5a4be 100644 --- a/modules/base/shaders/shadow_nighttexture_fs.glsl +++ b/modules/base/shaders/shadow_nighttexture_fs.glsl @@ -76,14 +76,14 @@ vec4 calcShadow(const ShadowRenderingStruct shadowInfoArray[numberOfShadows], co float r_u_pi = shadowInfoArray[0].rc * (shadowInfoArray[0].xu - length_pc_proj) / shadowInfoArray[0].xu; if ( length_d < r_u_pi ) { // umbra - return vec4(0.0, 0.0, 0.0, 1.0); + //return vec4(0.0, 0.0, 0.0, 1.0); //return vec4(1.0, 0.0, 0.0, 1.0); - //return butterworthFunc(length_d, r_u_pi, 4.0); + return butterworthFunc(length_d, r_u_pi, 4.0); } else if ( length_d < r_p_pi ) {// penumbra - return vec4(0.5, 0.5, 0.5, 1.0); + //return vec4(0.5, 0.5, 0.5, 1.0); //return vec4(0.0, 1.0, 0.0, 1.0); - //return vec4(vec3(length_d/r_p_pi), 1.0); + return vec4(vec3(length_d/r_p_pi), 1.0); } }