We had a couple of customers encounter the same problem this week in SilverLining, so it seems worth writing up here!

This issue affects customers using a left-handed coordinate system; usually, there are DirectX customers.

The problem arises from different conventions between SilverLining and your left-handed application on which way is “North.” If you pass in “true” for the leftHanded parameter on SilverLining, we will render the sun and moon assuming that positive-Z is “North.” However, the vectors returned by Atmosphere::GetSunOrMoonPosition(), Atmosphere::GetSunPosition(), and Atmosphere::GetMoonPosition() seem to behave as though negative-Z is “North” for these customers.

We’re actually pretty confused by this; in our own tests, the vector we return is exactly the same vector we use for drawing the sun and moon no matter what. But if two customers have encountered this in the same week, something must be going on. We’re hesitant to change any behavior on this, since I suspect it’s working as expected for some people, and others may have workarounds in place that a “fix” would break.

So, we’ve modified our documentation and are posting it here: If you are using a left-handed coordinate system, you may need to negate the Z coordinate we return from Atmosphere::GetSunOrMoonPosition(), GetSunPosition(), and GetMoonPosition().