Today's updates:

  • Automatic clearing of the cache when hardware is changed
  • Saving compiled shaders binaries to the cache and fast loading
  • Preloading all shaders at startup (optional)
  • Oblate planets and stars, automatic calculation of oblateness
  • Gravity darkening of oblate stars
  • The OpenGL 4.1 has a long-awaited function implemented - getting binary code of compiled shaders. Now it is possible to save compiled binaries to the disk cache, and load them at the next program startup directly to the GPU, without a long compilation process. The speedup of loading time is 50-100 times! There are no lags caused by loading of new shaders when a new planet comes into view, or a solar eclipse crawling on the disk of a planet. Surprisingly, this function works not only in OpenGL 4.1, but in the older versions too. If it still not supported by user drivers, SE will use an old system (loading shaders sources and compiling).

    Also, I've add an option to the main config that allows loading all shaders at SE startup, so there will be completely no lags. When SE starts first time (or the hardware was changed and cache was cleared), SE performs loading, compiling and saving binaries of all shaders. It may take up to 5 minutes. But after that, at next launches it takes 10-20 seconds to load all shaders binaries.

    Oblate planets. I've fix some bugs with oblate planets (but not all of them), so I decided to add oblateness to procedural planets, calculated from rotation period. Here is the new appearance of gas giants - now almost all of them have an oblate shape (as our Jupiter and Saturn does, and to a lesser degree, Uranus and Neptune).

    Fast-rotating oblate stars like Vega or Spica have an effect called gravity darkening: polar regions are closer to the core and thus hotter (and brighter) than equatorial regions. So oblate stars will look like this:

    From equator:

    From pole:

    From intermediate angle:

    Colder star: