Investigating How MSFS Draws Clouds for Weather

Since SU7 was released with updates to the sim’s live weather data, I’ve been interested in understanding how the sim draws clouds based on computer model data and METARs. For background, I’m a meteorologist who has worked extensively with computer model data files and uses aviation-specific forecast parameters like cloud ceiling height and visibility in my work.

Based on the recent bug report threads on this forum, a few major issues have been raised on how clouds are drawn since SU7:

  • Problems rendering overcast skies: Shallow overcast layers are not opaque enough, or they are rendered with too many breaks in between (broken coverage instead of overcast), or they are rendered as a cumulus field instead of a stratus field. This has been an ongoing problem for the past several months, not specific to SU7.
  • Too many cumulus or towering cumulus clouds: Cloud layers that should be stratiform are drawn as convective clouds, and even cirrus clouds are frequently drawn with a cumuliform appearance. This has also been occurring for a long time before SU7
  • Clouds too low or on the ground: This is an issue that was apparently more frequent after SU7.

The more I’ve tested the weather system and seen reports from other users on the forum, the more I’m convinced that the first two problems are related to the way the sim interprets model data to draw clouds. The feature discovery video on weather that was published before MSFS was released gives some valuable detail on how the sim draws clouds:

  • Clouds in MSFS are fully volumetric – capable of being viewed from any angle
  • Cloud information is provided at 32 levels in the atmosphere
  • Depiction in the sim is informed by “density, shape, and fuzziness” of the clouds

I suspect that “density, shape, and fuzziness” are different names for the parameters that MSFS uses to draw clouds. In the custom weather menu, a user can define a cloud layer with three parameters: coverage, density, and scatter. I performed several tests yesterday to understand how each of these three parameters work.

Coverage: This is the simplest of the three. The coverage percentage appears to determine the fraction of the area that is covered by clouds

Density: This appears to be a radiative scattering parameter which is used by the rendering engine to depict how opaque the clouds are. I created three screenshots to illustrate. All three screenshots show a cloud layer with a bottom at 920 ft. MSL and top at 3000 ft. MSL.

Density = 0.30:

Density = 1.0:

Density = 3.0:

For shallow stratus layers, the density parameter determines the opacity of the clouds. It also determines whether the sun will be visible through the clouds from ground level.

Scatter: This parameter appears to modulate between stratiform and convective cloud types. If scatter = 0 the clouds will be more stratiform in nature, and if scatter = 1 they will be more convective. It’s hard to tell exactly what is going on behind the scenes here, but one way of envisioning it is: If you think of clouds like waves, the scatter parameter adjusts the wavelength between peaks. If scatter = 0 the wavelength is very long (tallest peaks of clouds are widely spaced apart, and clouds are drawn more contiguously), and if scatter = 1, the wavelength is very short (tallest peaks of clouds are close together). Here are three examples for a very deep cloud layer between 920 ft. MSL and 30,000 ft. MSL:

Scatter = 0:

Scatter = 65.71

Scatter = 100

As you can see, when scatter = 0, the height of the clouds gradually varies across the field of view, with a clear spot in the middle and gradually sloping clouds on either side. Increasing the scatter parameter results in a field of view that is increasingly covered by tall towering clouds, with scatter = 100 producing spiky towers close together.

I suspect these three parameters are the three mentioned in the feature discovery video – just with different names. If true, that leads to a crucial point: weather model data only provides a subset of the information needed by the sim to draw clouds.

As an example, the GFS model (Global Forecast System) from the US National Weather Service outputs two cloud-specific parameters at various levels in the atmosphere:

  1. Cloud cover (expressed as a percentage)
  2. Cloud water mixing ratio

Cloud cover from the model could probably be used for the coverage parameter in MSFS. I’m not sure if the two are expressing exactly the same thing, but I suspect it’s close enough to be useful.

At first glance, cloud water mixing ratio might be related to “density” in MSFS, but it isn’t identical. In MSFS, density is a scattering and opacity parameter. Scattering and opacity are strongly dependent on the size distribution of cloud droplets, not simply on the mass of water per unit of air mass in the clouds. The model does not produce any direct equivalent to the “scatter” parameter.

In light of this, I suspect that MSFS needs to “translate” model data into its three cloud parameters in order to draw live weather. Based on my testing, this produces multiple conundrums for realism:

Thin Stratus Clouds: As shown in the three examples for density above, shallow stratus layers in MSFS require a very high density to be opaque enough. In the real-world, it is not unusual to experience conditions like this:

But MSFS currently does not produce stratus layers with sufficient opacity to reproduce the experience of breaking out into sunshine suddenly after passing through a layer that is only 2000 or 3000 ft. thick.

Furthermore, even a small reduction in coverage below 100% exacerbates the lack of opacity. In my testing, reducing the coverage below 100% resulted in a noticeable reduction in the height of the cloud tops, even though the cloud top altitude slider remained constant. Here is a depiction of a stratus deck between 920 ft and 3000 ft MSL with coverage = 95%, density = 1.0, and scatter = 0:

To produce realistic narrow stratus layers with the current weather engine, it would be necessary to maximize coverage and density. It would be very challenging to make this work well. If nearby gridpoints in the model are clear of clouds, an overly sharp edge of the cloud layer could be drawn, rather than a smooth transition from overcast to clear.

On the other hand if the stratus layer is deep (several thousand feet from bottom to top), a high cloud density results in excessive shadows at the top of the cloud deck cast by tall portions of the cloud onto lower areas. This is the classic “volcanic ash” appearance which has shown up in many screenshots and reports on the forums:

Cloud layer between 920 ft and 20,030 ft. MSL. Coverage = 100%, Density = 5, Scatter = 0:

In this case, lower densities look more realistic:

Cloud layer between 920 ft and 20,030 ft. MSL. Coverage = 100%, Density = 1, Scatter = 0:

Cloud layer between 920 ft and 20,030 ft. MSL. Coverage = 100%, Density = 0.30, Scatter = 0:

The drawback to low densities is their translucent appearance. When climbing into a cloud layer, the ground will still be visible for several hundred feet until it finally fades from view. Near the top of the climb, the sun will become visible through the clouds, and breaking out above the clouds is less dramatic than in real life.

Another apparent feature in the last few screenshots is that cloud tops are drawn with a lot of cumuliform, convective features (like cauliflower) which can be softened in appearance by setting the density lower. But softening the clouds is only a superficial effect. Those features still exist, they are just thin and translucent. And the side-effect is that clouds are far less opaque.

Deep Cloud Layers with Less than 100% Coverage:
The problem I just described becomes a serious issue when a deep cloud layer is defined with less than 100% coverage. Since the default cloud engine draws clouds with convective (cauliflower-like) tops, this results in towering cumulus clouds by default. Here is an example with coverage = 70.86%, density = 1, and scatter = 0:

With the scatter parameter set to 0, this cloud field should theoretically look less convective than with higher scatter numbers. And yet it looks extremely convective and a little like volcanic ash clouds. The problem is even worse with density = 5:

To produce clouds that look less convective, the density parameter needs to be dialed down to very low values. Here’s the way it looks with density = 0.10:

As I mentioned earlier, though, the clouds become very translucent at low density. These clouds will suffer from a lack of opacity. The sun will be visible from deep within the cloud, and it will require a long ascent into the cloud base before the ground is no longer visible.

Conclusion
Based on the results I’ve described, I can appreciate how difficult it will be to fine-tune the live weather depiction to show more realistic features. For different cloud types, realism requires clashing cloud parameters in MSFS. Shallow stratus clouds require near 100% coverage and maximum density to be realistically opaque. But maximum density for thick stratus clouds leads to a dark, volcanic-ash-like cloud top.

For layers with less than 100% coverage, the scatter parameter modulates the convective appearance of clouds. But when the cloud layer is deep, the cloud engine’s default cloud shape is stretched vertically in a way that looks strongly convective even when scatter = 0. The only way to soften the appearance is to decrease the density to very low values. This produces the unwelcome side effect of excessively translucent clouds.

Ensuring realism requires tuning these parameters carefully with different values for different cloud layers. It’s hard to know if these differences can be properly blended together if multiple layers exist. I suspect that ultimately, the cloud drawing engine (with its default cauliflower shapes) will need to be modified to support better diversity of clouds in the future. But in the meantime, the existing system requires tradeoffs.

144 Likes

Please can you just get a job with Asobo??

50 Likes

That was a very professional and detailed explanation for the inner workings of a game. Thanks for the details.

4 Likes

If you are amenable, you should reach out to Jorg and see if you could do some consulting work. You appear to be preeminently qualified.

14 Likes

It’s a good explanation, but all I know is that before SU7 we had very little complaints about the weather. So what happened now that can’t be resolved in a few days? How did we go from ever changing skies to all the same cumulus in most airports?

8 Likes

I came across this pic that Im sure all will remember. Things used to be much better.


Solid clouds. Good colors.
here’s another shot I always liked:

10 Likes

Excellent post, so great to see a writeup from a professional. You could totally assist with improving the cloud generation in this game!

2 Likes

Can’t imagine the difficulty in programming to make it all work correctly in real-time worldwide. Makes my hair hurt just thinking about it.

It’s an interesting one, I could never actually accurately predict the weather using the meteoblue data, so I was definitely up for a change if it could improve that. But obviously it hasn’t.

Thank you for that detailed explanation and investigation.

It is interesting that Prior to SU7 the sim was more than capable of rendering long flat overcast layers using live weather. They were really convincing. Such a shame they have removed these.

image

6 Likes

I think it is because METAR does not have that detailed information about how clouds look like. If meteoblue says clear sky they have no information about the clouds to use when metar reports broken clouds as an example. As i have said it’s hard to create clouds with METAR they are used for planning. It was easier with pictures as clouds i think because we know those are not realistic anyway. Now we have volumetric clouds and they make us want the weather behave realistically. Because they are realistic and dynamic.

1 Like

Yes but they will fix this, all of this…it’s just that they have to work on it. Unfortunately we gave the Christmas time ahead to delay things further

Thanks for this great post - although sometimes the weather can look good in the sim, the points you make have been bothering me right from the day MSFS was released. Hope Asobo will take this into consideration.

2 Likes

Maybe that’s why we were able to see the sun, just the disk, with overcast skies. It didn’t bother me at all. And this topic explains hoe things works then I’d rather still see the sun disk than having any other complicated tweaks

Today. Real weather, Hawaii

Interesting read, and I think your assumptions are not far from the difficulties Asobo is facing at the moment.
The “translation” process might have gotten compromised with SU7 as they stated in the latest Q&A that they are getting “more detailed data” from Meteoblu, which hints at a different structure of the data going into said “translation” process, and your findings match with the recent anouncement calling it a “complex system”.

That also indicates that unfortunately we will most likely have to get used to the thought that it will be a longterm process to bring the promised improvements in accuracy into the system.
The night lighting improvements come to mind, where the first attempt for improvements asked by the comminity was underwhelming and it took nearly a year to get to where it is now.

And it indicates, that - as you mentioned - tradeoffs will have to be accepted, as no desktop simulator will ever provide a dynamic weather simulation looking exactly as every user sees out of his window.
Live weather should be considered “accurate” when the sim displays phenomena related to certain atmospheric conditions in a reasonable manner.
It is not reasonable to expect exactly a 7/8th coverage nailed at exactly 2300ft AGL only because some momentary report said so 25 minutes ago whereas it is reasonable to expect stratiform clouds instead of TCU if the given parameters around an airport indicate a stable layering of the atmosphere.

3 Likes

I Don’t think anybody is expecting 100% accuracy, many are just asking for the weather to go back and look believable as it did before, even if we all know it had some flaws.

13 Likes

Exactly this!

2 Likes

Astoundingly concise and informative post. I’m interested in meteorology but am a first day student compared to your Doctorate-level knowledge.

I do hope that someone from Asobo or MSFS has been in touch with you.

1 Like

For the love of God Asobo, hire this guy… :+1: :moneybag:

6 Likes