Getting incorrect lighting when Georeference is True Origin

Whenever I set the CesiumGeoreference to True Origin, I notice these two effects:

  • The dark side of the Earth becomes completely black
  • The CesiumSunSky Time Zone does not correspond to actual lighting. For example, at 1pm UTC+0, London is in the dark side of the Earth.

Steps to reproduce: in Unreal Engine 5.1, open the Cesium for Unreal Samples project, level 01. Select CesiumGeoreference-1 in the outliner, and change Origin Placement to True Origin. Go to CesiumSunSky and click on Update Sun.

Is there a workaround for this? I have noticed that placing the CesiumGeoreference at latitude -90, longitude 0, and altitude -6357000 fixes the problem with the dark side being completely black. But it does not fix the problem with the Time Zone.

Unfortunately, CesiumSunSky has issues when it is far from the georeference origin. We’re tracking the bug in this Github issue.

Just to see if this is the same issue, can you see what happens when you move the georeference origin to London? I imagine that the lighting will be more correct if the georeference is set closer to where you’re viewing.

I think it is not the same issue, although it may be related.

As you move the Solar Time value, the sun seems to be rotating in the wrong direction, rising from the West and setting on the East. Also, time zones are 12 hours off.

With respect to the dark side of the Earth becoming completely black, setting the Transmittance Min Light Elevation Angle to 90 does not change anything.

Unfortunatelly, moving the georeference origin to a particular place is not a solution, as I am using a global view of the Earth, I only set London as an example.

Noted. I don’t know any workarounds for your use case, then. But we’re working on some substantial changes to the georeferencing system, which also affect CesiumSunSky. You can check out this PR for more details.

Some relevant changes from that PR include:

  • CesiumSunSky now uses a default TransmittanceMinLightElevationAngle value on its SkyAtmosphere component of 90.0 degrees instead of -90.0 degrees. This will generally improve lighting when far from the CesiumGeoreference origin, but it is a breaking change because it may change the lighting conditions in existing levels, particularly at sunrise and sunset.
  • Added AtmosphereHeight, AerialPerspectiveViewDistanceScale, RayleighExponentialDistribution, and MieExponentialDistribution properties to ACesiumSunSky. These have the same function as the properties of the same name on Unreal’s built-in SkyAtmosphere component, except that they automatically respond to the scale of the globe.

If you’re building the plugin from source, you can check out that PR early and see if it addresses the problem. Otherwise, we’re looking to release it sometime in the next few months.