So on this year's E3 a new Microsoft Flight Simulator has been announced. Here is the trailer for those who want to see it. I was blown away by its graphics, so I wanted to do a small graphics study to analyze what's the current state of the art and how FG can learn from it. I will only be dealing with graphics, since that's what I know about and I have no interest in FDMs or systems. Yes, maybe they suck. Yes, maybe FG is better in almost every other aspect. But I won't be going over those.
The trailer starts with some sky shots, showing off the atmospheric light scattering and clouds. They finally caught us in this area, which is kind of a shame since one of FG's main "selling" points was ALS. The clouds look amazing (we will be seeing other examples) and they don't look like billboards. Low cloud formations are probably using some kind of volumetric approach, similar to DICE on their Frostbite engine and Horizon Zero Dawn. Higher clouds seem to still be using billboards though.
This is a very interesting screenshot. Here we can see the engine is using PBR and HDR, hence the bloom on the parts of the aircraft that reflect light back to the viewer. The bloom doesn't look too overdone in my opinion, we will be seeing other examples later. This is accomplished by blooming truly over-saturated areas where the contrast range of the camera or eye isn't enough, not the entire framebuffer. Reflections are also quite prominent. It seems they are using Screen Space Reflections, that's why the hangar door stops reflecting on the floor when the aircraft is on top. There is also some depth of field just for the sake of the cinematic trailer.
Again we can see how obvious the HDR is, trying to display a respectably big contrast range. The shadows are very crisp, although they are probably using good old cascaded shadow mapping. Everyone can throw a high end GPU to the game and use 8192x8192 shadow maps.
The sun rendering seems to be using a similar (or the same) approach as the Frostbite paper I linked earlier. No lens-flares or overdone camera effects. In fact, there is not even bloom on the sun edges because the sun is very low. This screenshot also kind of confirms that they are using volumetric clouds, as that level of depth in the lighting isn't possible on billboarded clouds. The water reflections are kind of overdone though, I don't think we'd be seeing that level on detail on the reflections in such a large body of water.
This one is just amazing. The light coming out of the very dense clouds is amazing. The effect is just a natural consequence of using volumetric ray marching for the clouds though.
The streets and urban areas seem to be using baked lights, not dynamic lights. Modern clustered shading techniques like clustered forward rendering and tiled deferred rendering are capable of showing that amount of lights, but since they are static they are probably pre-baked. Again, no overdone bloom and lighting really flows naturally. The clouds' colors are breath-taking.
The grass seems to be instanced billboards, similar to how we do random vegetation in FG. There aren't many other options regarding vegetation rendering nowadays, so it's probably a matter of having the artists and the right textures.
And my favourite shot, it basically sums up all I've said until now.
So, is this possible in FG? Well, we are at a turning point in the real-time graphics industry. We have been slowly turning away from very well-established concepts that have dominated the industry for 20 or 30 years. Things that once were obvious, like defining a material or a light source, have changed dramatically over the last few years as computing power has increased. These are bad news for FG. We have a long history and the iterative nature of FlightGear is what keeps it going. We build brick by brick, standing on the shoulders of they people that contributed before us. The problem is that these building blocks are finally breaking under their own weight and can no longer support the new stuff that's coming on top. There are hundreds of aircrafts in FGAddon - changing the entire material system would break them all. There are thousands of well-developed airports and manually placed buildings, people who took the time to build their home airport click by click. Rewriting the terrain engine would break it all.
We are kind of stuck graphically. We can keep implementing goodies and other fancy effects, but in the end the underlying problem is very hard to fix (I'd say almost impossible). It's still useful to follow the progress being made on the flight sim market, to have a benchmark to compare to. Again, I'm talking about the rendering, not about the 3D models or artist work. The bar for artistic quality is higher and higher every year, which again isn't good for FlightGear as we don't have the numbers to compete. But that's another problem of its own...
It also doesn't help that even the low level rendering tools are changing to adapt to the changes. Modern APIs like DirectX 11 and Vulkan have a completely different workflow compared to legacy APIs like OpenGL and DirectX <10. And it's even less helpful that hardware manufacturers (ahem, Apple) are dropping support for these APIs.
I have no idea how we will get over this bump in the road, but I'm optimistic about it. Open-source (usually) finds its way when enough people are interested. Let's see how it all turns out.