After more than a year, here is a new version of Cosmonium, v0.2.0 ! What started as a simple bugfix release ended up with tons of new features (and bugfixes too )
The engine
The engine itself got many bugfixes and improvements, notably the most time consuming functions are now ported to C++, which gives a huge performance boost.
Basic support for object control with scripting is added. It’s now possible to add a cockpit on your screen or even a full ship and follow it around.
Procedural generation got some attention too, glitches and seams are mostly gone now, several more noise sources and functions are available. Rings can also be procedurally generated now.
Rendering
The rendering engine got PBR support for the rendering of the glTF models.
The atmospheric scattering has been improved too and is much more realistic (though not yet perfect), it provides atmospheric extinction on all the objects seen through an atmosphere.
Eclipse shadows now also support non-spherical objects; object self shadowing is also improved with configurable bias and PCF filtering.
Stereoscopic rendering is available, full VR support is for the next release though.
As a proof of concept, there is also a volumetric raymarching engine, it can already be used to generate diffuse and emission nebulae.
User interface
The use interface has been greatly improved, thanks to the work of @Epihaius, @Moguri @Thaumaturge, @wolf. Using their libraries, you can now edit some of the parameters of the bodies and see the changes in real time! The application parameters can be edited from a window instead of modifying a hidden yaml file. You can also open a embedded browser to get more information about most of the object you see. And lastly, you have a file selector to load scripts or to select the screenshot directory.
It’s now also possible to select point-like objects with the mouse. There is internationalization support (with French now available).
Astronomy
Well, that’s the purpose of this app after all The orbits and rotation models of all the main planets and moons of the solar system are now using accurate theories. This means their position and orientation should be much more realistic. The eclipses and transits in the app are now occurring at the correct time and with the right configuration.
Missing moons and newly discovered objects have been added.
Next steps
For the next release, I plan to redo the core engine and port more of the time consuming code, like the geometry generation, to C++; and make it more robust. This will allow adding many more stars and objects!
The rendering will get improvements with Bruneton atmospheric scattering, environment map, proper exposure correction, VR support, …
The new installers and binaries for Windows, Mac and Linux are available here. And for the curious, see the changelog for much more details.