Dynamic Graphics Settings: Expose TLOD/OLOD/Clouds/etc via Simconnect L:vars

Since it was openly spoken about during today’s dev Twitch stream, I think it’s worth exploring further public discussion about dynamic LOD on PC. At least Jorg and Seb seemed very open to the idea. But curiously, one of them mentioned that they had never thought of this on PC before. I remember reading about this in forum posts a long time ago (maybe even 2-3 years ago) and nothing was ever done about it. Now that the idea is out in the open again, let’s discuss instead of hiding in the shadows or having a pre-baked solution imposed on us.

Could we have OFFICIAL access to these variables on the fly via read/write Simconnect L:vars? It would allow customization of a user’s experience dependent upon the user’s preferences, PC capability and conscious quality/performance tradeoffs.

My concern is that if dynamic LOD is implemented natively in the sim for PC users, we will be limited by pre-determined ranges set by first party devs that may not have experimented with a full range of hardware, or with different subjective preferences.

For instance, of course setting TLOD to 800 at an airport is unreasonable but up at FL200+, with capable hardware, it’s glorious. But in order to achieve that in a semi-acceptable way, I have to manually tweak the Usercfg.opt file. It’s out of slider range in the user interface. But I’ve done it and it’s awesome! Similarly, if I set TLOD to 100 and OLOD to 600 on the ground at an airport, it’s similarly awesome. That too is out of range on the user interface.

And to preempt any criticism of my suggestions as being elitist or oblivious to folks with various levels of PC hardware, this solution would benefit EVERYONE. And furthermore, you could adjust to “taste”, just like we can with other graphics quality settings.

If we could have these variables exposed natively via L:vars, not only would the sky be the limit as to how an algorithm could be developed by the community (or even paid 3rd party devs), but it could be achieved in a way that adheres to the rules.

The results are just too compelling to ignore.

Thanks! And I look forward to an open discussion. :slight_smile:

1 Like

I was the one who asked the question in the chat about TLOD, what amazes me is they dont seem to realise that TLOD also changes the texture resolution of the ground textures. Is it a bug then?

7 Likes

Maybe it is a bug in recent releases, that’s very possible. It sure seems like when you increase TLOD, both texture (pixels/colors) resolution and mesh (height/topology) resolution both increase at a distance. The glorious 800 TLOD I mentioned above was because I could see lots of intricate ridges/valleys/rocks/etc with all of their increased pixel and topology resolution at a longer distance. Flying down the central coast of California looks awesome at high TLOD. Being along a faultline, there’s tons of geologically cool scenery to check out.

Edit: screenshots added. Beta 1.37.8. Cropped some of the sky out to minimize file size.

17000ft, TLOD 1000, OLOD 300, Clouds Ultra, plenty of FPS
Imgur

17000ft, TLOD 1000, OLOD 300, Clouds Ultra, plenty of FPS
Imgur

~10000ft, TLOD 800, OLOD 400, Clouds Ultra, plenty of FPS
Imgur

~6000ft, TLOD 600, OLOD 500, Clouds Ultra, plenty of FPS
Imgur

Hopefully the sharpness comes through in the screenshots. I’m not going to say what the FPS was so that I don’t get called out, but it’s plenty flyable for me. Yes, it’s top shelf PC hardware and I was lucky enough to be able to chose to buy it. With settings like these, I get to properly use it. Peak RAM usage was 28.9GB, typically around 25GB for most of the flight. VRAM was around 12GB the whole flight.

Edit2: Looking at them in the forums, they are blurred out a bit because it looks like they got downscaled to 690 pixel wide jpgs or something like that. They look a lot better at 3840 pixels wide. Updated screenshots to imgur links.

1 Like

If they do implement some version of this, it needs to be customisable by the user, every one has different hardware and different ideas of visuals v performance trade off. A one size fits all solution will not work, and some people will find the visuals degraded to a level at which they are not happy.

3 Likes

Exactly what I was trying to say in part of my first post. Agreed 1000%

1 Like

Well, many things are prohibited here…
I have always wanted to fly freely over the Tokyo sky with Pimax8kx.
I bought a 4090 using the Japanese yen, which is now a poor currency, and since I tried every method and still didn’t have enough, I also bought a 7950x3D.
The conclusion is, ``The fate of waiting for the 5090, continuing the miserable flight in fear of its price, and spending the days agonizing over your bank account and draining your spirit to the limit is inevitable.‘’
was.
But events earlier this month changed everything.

You can see a video of me flying in a frenzy on my profile.
Well, from everyone’s point of view, it’s probably boring.

Now that I’ve done it once, I know it.
I can’t bear to have this taken away.
This is my answer.
By the way, did this week’s update affect you in any way?
I don’t know where to start talking.

There is a very weak periodic stutter every 2 seconds.
It was resolved before the update.
Was it an update that required erasing NVIDIA’s shader cache?

In VR, the more detailed the drawings in the distance, the more ``atmospheric feeling’’ it feels.
Those scenes will no longer be a picture of a map drawn on the floor of your house, but will be felt as if they were on the ground 30,000 feet below.

I’m no developer myself but this has been bugging me for a long time. On default airports it’s mostly fine but on 3rd party airports taxiway lines and custom text look terrible. The only way to fix it is to increase TLOD which my hardware can’t handle.

If you are not already aware of the forum posts:

BTW, take a look at default Meigs field airport (KCGX). Taxi lines and ground textures look different and better (although I think they were able to get away with it because the terrain is flat).

I guess the solution is in the MSFS 2024 :face_with_diagonal_mouth:

Great thread! Running as high LODs as possible is something I’ve been doing for quite some time. Having a high TLOD at up at higher altitudes makes a huge difference. Both in terms of how much of the scenery is visible, and also how detailed the ground textures will be. Even closer to the ground the difference can be quite significant.

Lofoten Islands, Norway at TLOD 1400:

New York at TLOD 600 OLOD 1000:

3 Likes

You are better at taking screenshots than I am. But yeah, what he said!! :point_up_2:

But the key thing here is that one of his shots is at 1400 TLOD. Number one, the slider in the simulator GUI doesn’t go that high so you have to adjust the.cfg file before loading the sim. Secondly, even if you did adjust the.cfg file to 1400 TLOD, nobody wants to try to taxi around an airport or land with it set that high. The only way to optimize graphics settings for truly optimal performance and quality in all scenarios is to be able to do it dynamically. We need a way to make this happen.

Even with an AMD 9999x4D and a 6095 super duper Au, you will still likely enjoy dynamic graphics settings. Similarly, a system that’s a bit longer in the tooth or one bought on a more limited budget would benefit as well.

Here’s a bit of an analogy…

I’m not suggesting dynamic graphics settings will make a Kia run like a Ferrari, but both vehicles have windows and what you see out of the windows can look a lot better, more of the time, with less cattle guards near the stoplights and crosswalks, IF dynamic graphics settings were available. Without it, we have to get out and change tires after takeoff and again before landing. If you’re in a Maybach, you can have the driver do it for you, but for the rest of us, it spoils the ride.

To take the silly analogy a step further, if it’s implemented natively in the sim… Awesome. But please let us gearheads have the ability to tune the carburetor, adjust the dampers and choose cam timings for our use cases.

A one button fits all and call it done solution with no knobs to twiddle would surely leave many disappointed.

Give us the option to dynamically adjust basically ALL of the settings on the current graphics GUI tab (or even better, everything in the UserCfg.opt file)

That way, I can reduce the vignetting of the cloud reflections with the perfect DOF on my chrome lug nuts for the weekly screenshot challenge. :wink:

3 Likes

The point of dynamic LOD is to give you the visuals when you can afford to have them, and to reduce them when you don’t need them or can’t afford them.

On the ground, who cares if you can’t see a tree line 20 miles away. As altitude increases, you can see more of the surface so steadily increase your LOD while maintaining frame rate.

6 Likes

True, but the problem is that the airport ground textures are bound to TLOD. If you reduce TLOD you reduce the quality of taxi lines and custom ground text/markings.

For me personally, those look good with TLOD set at at least 300 which is quite taxing on the system.

It’s not just airport textures, all ground textures.

3 Likes

My understanding is that LOD determines the level of detail for things like trees, buildings etc., while TLOD determines the radius at which LOD detail becomes visible.

‘Terrain Level Of Detail’ is a misnomer. It’s actually ‘Draw Distance.’

Mark talks about them starting at 7:20 in this video.

Do you truly need that high of a TLOD. Is there any difference between 800 and 1400?

Also, having the OLOD at 1000, does it actually display more visible objects in much further compared to 200?

Couldn’t have said this better myself.

Exactly. The only scenario I can think of in which a higher than max default TLOD could be useful, is at a remote airport in a mountainous region in a GA aircraft.

This is often a “can’t have your cake and eat it too situation”. When flying into e.g. Heathrow in the A320 with loads of AI traffic I usually set TLOD to 100 to get the best FPS. But in doing this I have to accept that the runway will not be fully rendered until crossing the threshold (perhaps an overstatement).

My understanding is that both LODs refer to the same thing: draw distance, only that TLOD is for terrain textures and OLOD trees, objects.

In my screenshot above from NYC with a OLOD of 1000 basically every single building in the image is being rendered.

Not sure if it’s an issue of “needing” it. But to answer the 2nd part of your question (is there a difference) - IMHO it certainly is. The difference can be huge.

So it really comes down to what the individual user wants out of the sim? I really prefer having as many trees and objects rendered when close to the ground, and conversely as much terrain rendered when up high.

As for OLOD 1000, see my comment above.

2 Likes

That’s the one I remember. 2020 was the year.

I’d love to have dynamic graphics options like this, especially for the TLoD/OLoD. When I fly to a busy airport like KJFK I need <=200 TLoD/OLoD to maintain my FPS, however when bush flying (low altitude) I can run 300-400+, probably even higher at high altitude.

It would be great for it to change itself on the fly (you have permission to boo me :stuck_out_tongue:), instead of me having to manually change it in advance based upon where I’m going to fly. It would also be nice to be able to take off from somewhere like Vancouver and climb over the mountains to my cruising altitude and then descend to land at my destination without having to compromise on quality or pause the game multiple times to change these settings.

5 Likes

We can dream, can’t we?

Seems like this will be manifested one way or another, and hopefully sooner than later. Like I said before, I just hope we aren’t forced into a one button fits all type of implementation. At the very, very, very least, we need a target FPS as a user variable. But there’s a lot more that I’d like to have control over, such as:

  • min/max values for LODs
  • AGL transitions for different modes of optimization (low and slow vs TBM vs tubeliner)
  • Do we allow clouds to be degraded to maintain FPS, and within what range, and with what priority?
  • Do we allow different target FPS values for different scenarios?

I like writing algorithms like this. And I’d love to try my hand at it. I’d probably do it in a Lua Air Manager “instrument”. Just give me the L:vars!

And I’m sure there’s more things that smart folks will come up with. We need the tools. Not just a baked in “fix” that can suffice as a resolution on the dev update list.

And I’m not saying a simple one button dynamic FPS solution is bad. In fact, it will likely serve many people quite well. But don’t stop there and leave us high and dry.

And to be clear, I haven’t developed any solution like this before. I’m not THAT guy. ;). I’m just a very interested party and for some reason, I decided to go on a crusade to do as much as I can to make it happen for everyone.

5 Likes

That video you added is pretty compelling.

1 Like