Solar System and 64-bit
During the past month I have worked on updating the textures of Solar system planets and moons to make them compatible with the new terrain engine. The old textures are incompatible because they have a resolution of 258*258, while the engine now requires 256*256; also, some of them are obsolete. So I updated the Cubemap tool and started re-processing my planetary maps datasets. So far, the final HD addon has a size of 44 GB. On Steam, it will be represented as 11 free DLCs (8 big planets, the Moon, Pluto, and asteroids):
The "Asteroids HD" DLC includes Ceres, Vesta, and high-resolution (8k) textures for the comet 67P/Churyumov–Gerasimenko. A great model of the comet made by Mattias Malmer will be included in the default SE installation package, but with a smaller (4k) texture.
I decided to not split them into HD and Ultra DLC packs, like in the previous version. The added flexibility isn't worth doubling the size of the DLC list.
Some maps are the same as before, but many were updated to more recent or better quality maps. The Moon uses a great addon by Klud for SE 0.980:
Mars now uses a higher-resolution elevation map (although it has some issues):
In this comparison you can see that some secondary ravines in the Valles Marineris canyon are completely blurred out on the old map, and are clear on the new one:
A new Jupiter map by Björn Jónsson includes the latest images of Jupiter's polar regions obtained by the Juno spacecraft:
The new Europa map, also by Björn Jónsson, is the highest resolution global map available to date. Here you can see a patch of a higher resolution than the rest of the terrain:
Unfortunately, most maps of the gas giants' satellites have this patchy look. We need orbiting space probes around each of them!
The new map of Saturn features its huge polar hexagon vortex (credit to Solar System Scope):
Kexitt made amazing fake elevation maps for many Saturn's satellites. They are "fake" because the Cassini spacecraft was not equipped with a laser altimeter, and NASA, as far as I know, has not published any elevation maps derived from stereoscopy, like they did for Pluto and Charon. Anyway, his method of deriving elevation from terrain shading gives amazingly realistic results:
Titan's surface map was made by Ian Regan: it is the highest-resolution and most uniform global map of Titan to date. It is an infrared map, so it's quite fuzzy; I plan to add closeup views based on Cassini radar images, which show an amazing level of detail.
Uranus' and Neptune's satellites were mapped only by Voyager 2, and only from one side. The image quality is quite bad, and there are no elevation maps. So a user named Snowfall made artistic maps for all 5 Uranian satellites, and for Neptune's moon Proteus, based on real imagery. I must say they are very good! There are addons for SE 0.980 available at the link above. The new textures for Uranus and Neptune were also made by him. Thanks Snowfall!
The Pluto and Charon maps are based on real photos taken by the New Horizons spacecraft. Both were mapped in high resolution only on one side, so the other hemisphere is blurry and doesn't have elevation data. An artistic map for it is planned.
While working on importing these maps, I updated the cubemap tool, made it multithreaded and 64-bit, so it can load the whole source RAW file into memory (the largest of them are 10+ gigabytes). This gives a huge boost in performance - the largest maps were converted in just 15-20 minutes on 6-core CPU and SSD. The funny thing is that after compiling Cubemap for the 64-bit platform, as an experiment, I copied the jpeg/png/tiff libraries from its source code to SpaceEngine's source code, compiled the rest of the libraries like Oculus and ogg, and voila - SE is compiled for 64 bit! A few tweaks in the code, and it seems to be working in 64-bit mode now! This is hugely beneficial, because SE now can use as much memory as the system has (and, more importantly, terabytes of virtual address space). Before, as a 32-bit app, SE was limited to only 4 gigabytes, which was really not enough. Crashes happened frequently when SE ran out of that memory. Now stability is greatly improved.
As another benefit, beta testers immediately started to push SE far beyond its former limits, like loading an experimental subset of the GAIA catalog with 30 million stars:
Or raising the limiting galaxy magnitude to crazy values: here we can see 45 million galaxies being rendered in a cross-section of SpaceEngine's universe:
DoctorOfSpace managed to make SE use 24 GB of RAM in his stress testing:
I wasn't expecting that porting to 64-bit would be so easy, so it seems that I wrote the code in the right manner from the beginning 🙂 Anyway, this is great news, and it opens new possibilities. On the other hand, I managed to run SE on my old laptop with a 1 GB Radeon GPU by disabling many new features and reducing quality. Now I am working on quality/hardware presets, which can be auto-detected and loaded at startup. This will increase the ease of first running SE on a weak machines, which could make it easier for many more people to use the program.
But I am dropping support of Windows XP and Vista because they are no longer supported by the Steam client. Also, support for 32-bit Windows may not be needed now - does anyone still use a 32-bit system and can run SE 0.980 on it? If you have experience with this, please write about it on the forum.