Friday, June 6, 2014

Planets rendering in Stellarium

This week I spent some of my evenings working on planet rendering in Stellarium.

One of the long standing task which was in my TODO list was to properly integrate the great work done by Jörg Müller during the Google Summer Of Code 2012 (yes that's about 2 years now!).

Although his code was producing a satisfying rendering, it had never been permanently integrated because of several reasons: the code was very slow, was making use of floating point textures, which is not supported by many OpenGL implementations, and most importantly, the code was not well integrated with the rest of the rendering, mostly because the rendering code of Stellarium was and is still on some aspects very messy.

So, after a good refactoring and a large shader simplification, we now reached a point where we have a rendering as good as in Jörg's branch, with only a few FPS drops, and without using any exotic OpenGL features.

Here is the result:

Saturn as seen from Iapetus. Notice the ring shadow cast on the planet

Io in front of Jupiter

What's next? The recent switch to shader-only based OpenGL code and shader cleanup done this week will allow me to improve the currently poor rendering of planets.

To be continued..

No comments:

Post a Comment