Version 1.92 is now available on our download page. This minor release addresses a bug in the placement of the sun and moon in non-geocentric coordinates systems where the Y axis is not the “up” direction.

This version also introduces a new optional parameter to Atmosphere::EndFrame() – the “drawPrecipitation” parameter. Why would you want to suppress precipitation in an EndFrame call? Well, this provides a workaround for a problem with rendering rain streaks in setups with multiple rendering passes from different viewpoints within the same Atmosphere object. Every time EndFrame() is called, the position of each rain particle is saved as the starting point of the rain streak in the next frame. If you call EndFrame() multiple times per frame from different viewpoints, you can get into a situation where the “previous position” of each particle is far, far away – leading to the rain streaks going haywire.

Really, you should maintain separate Atmosphere objects for each viewport you maintain. But, by only passing true to “drawPrecipitation” in your main rendering pass, you can sidestep the issues associated with rendering multiple viewpoints at once using the same Atmosphere. For example, if you have a reflection pass, you can pass false on that pass to avoid interfering with the rain streaks on your main rendering pass, saving you the overhead of an additional Atmosphere object.