• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

MSFS24 2024 LOD system is horrible, how to get models to stay sharp for a reasonable distance using MCX lod creator

Sorry for the delay in response. Here's the table for vertex limits:
MinsizeTable.png


The vertex count of the LOD0 glTF model above, is 176. You can find the actual vertex count by importing a glTF into Blender, and then see the vertex count. The .blend file doesn't help as it hasn't been processed yet as glTF. From the above, you can see the approximate minsize should be around 0%, using High only. So specifying LODs above the LOD0 is a waste of time. It just wouldn't help.

Also, Asobo gives us their method of deriving LODs:
LOD_XML.png
100

They let the sim decide the best LODs. For more complex objects, a discussion with Asobo reveals they recommend decimating (or deleting small elements) to 25% glTf vertices of each decimated LOD.

So, for example, if your LOD0 has 100000 vertices, then the LOD1 should have about 25000, LOD2 should have about 6400, LOD3 should have about 1600, LOD4 should have about 400, LOD5 should have about 100. notice the word about. Using the above artist example, the sim then determines the LOD levels.

Or you could try to come close to the first table above? Either way, letting the sim decide the LOD's minsize seems to work.

The actual display is a combination of object size (bounding sphere) as a percentage of the vertical screen display, and vertex limit. Textures have nothing to do with that.

The texturing recommendations simply help your graphics card out. Rule of thumb for textures is use the least size and number of textures to get the job done. In sim, from 250 feet away, there's little use for COMP or normal textures. (My opinion). From 1000 feet away, maybe vertex colors can display OK... but unless you have dozens of 4K textures, your object should be good in the sim. Most end-users have pretty good graphics cards, and if they don't, they should use lower graphics settings.

Is this complicated? It seems so. A lot of back and forth in Blender. MCX can help with creating LODs and drawcall tinkering with textures. I sometimes play with the pioneer version of the InstaLOD app, but honestly, ModelConverterX usually does the job a lot easer.

https://docs.flightsimulator.com/ms...xtures/Modeling/LODs/LOD_Selection_System.htm
 
Last edited:
So, for example, if your LOD0 has 100000 vertices, then the LOD1 should have about 25000, LOD2 should have about 6400, LOD3 should have about 1600, LOD4 should have about 400, LOD5 should have about 100. notice the word about. Using the above artist example, the sim then determines the LOD levels.
First of all, thank you, Dick.

I just tried this on a large object. To make a long story short, it doesn't work.

The test object has over 500,000 vertices and 5.5 million polygons. The vertices are reduced using the following formula: 500,000 vertices minus 75 percent = 125,000 vertices. Is that correct? I think so. But the LOD0 model is simply hidden too early, and the LOD1 model is displayed too early. The same thing happens with the subsequent LOD models.

The new LOD system works quite well with relatively small and medium-sized models. But, for example, with one of these huge oil platforms, the vertex reduction doesn't work as described. However, if I go by the number of polygons, the reduction works somewhat better. It seems that creating a satisfactory LOD system for very large models has become a science in itself.

EDIT
I'll ask for help directly in the Asobo/Microsoft forum. I'd like them to help me configure the model correctly. Maybe I'm doing something wrong.
 
Hi Christian. The reduction to 25% was suggested by Asobo and relates to the actual glTF vertices, not what would be initially reported by Blender. You'd have to export LOD0 to get the glTF, then import that glTF to find the actual number of vertices, and then decimate to 25%.

With that discussed, The important part of the Asobo recommendation is the writing of the XML when done. The second image above shows their method of letting the sim decide when to display the next LOD. Try 50% and see if the Asobo XML method works. The SDK says 50%. I think they recommend 5-7 maximum LODs for scenery models, and the last LOD should be around 100-200 vertices, but I think that would be glTF vertices, not quad or ngon vertices. You could triangulate all the faces in Blender, and maybe that would give the "correct" vertices count?

For large (complicated) models, Asobo uses SImPropContainers, where each sub element of the model has it's own LOD system. The default Oil Rigs are a good example of that. But SimPropContainers have to be assembled in the DevMode as far as I know. I think Asobo even told me that. And that seems tedious to me.

Their model creation process seems a bit mysterious to we outsiders. For one thing, they use 3dsMax. Most small fries (including me) use Blender. But the process should be similar for creating LODs. The SDK recommends typically a 50% reduction in vertices. But do they follow this guideline themselves? Actually, they use Simplygon to create the LODs, as far as I know.
 
I'm guessing the average reduction is of 25%... not to 25%. Meaning the LOD reduction of vertices would be 75%. I think that's my mistake.
Untitled.png


This is a Microsoft model of an oil rig base element. It would be the start of a simpropcontainer. The reduction is around 70% from LOD0 to LOD1. Then a reduction of around 77% from LOD1 to LOD2. Then a reduction of around 45% from LOD2 to LOD3. Then again around 45% from LOD3 to LOD4. Then a tiny LOD5. The Faces are about the same, and might be better to try within Blender, if the model is ngons and quads.
As a percentage of LOD0, LOD1 is around 70%, LOD2 is around 55%, LOD3 is around 27%, LOD4 is around 12%, and the final LOD5 is around 0.05% of the original vertices. These vertices are from triangulated faces. And I think this was derived from Simplygon.

As a guess, I think each LOD from the original LOD0 could decimate 75%, 50%, 25%, 12.5%, and just primitives for LOD5 (such as cube, sphere, cone for the final shape). And that kind of follows the Asobo recommendation.

The draw calls are another thing entirely. For example, the draw calls increase from LOD2 to LOD3, so there isn't a lot of any optimization until LOD5. I think Microsoft's artist didn't care much about that.

I'll see if an Asobo artist cares any more.
 
Untitled.png


This is a 'legacy' Asobo model. Right away, looking at the Original Minsize, I see this is their in-house method the write about in the SDK, just letting the sim decide on the LOD display. They used 3.0, 2.5, 2.0, 1.5, 1.0, and 0.0 The sim then decides the LODs at runtime. Again, the drawcalls aren't adjusted at all. Perhaps a non-legacy model would be more tuned to draw calls and textures, but I doubt it. The SDK writes about reducing the number of textures, reducing the size of the textures, eliminating COMP and Normals, using vertex coloring...

Number of vertices percentages from LOD0, LOD1 is about 12.5%, LOD2 is about 9%, LOD3 is about 4%, LOD4 is about 0.5%, LOD5 is about 0.03% I think this is the 2020 standard (legacy).

I'll look for a complex 2024 Asobo model.
 
Hello Dick.

Yes, I've read all of that and tried to apply it. The more I read, the more confusing it becomes. But anyway, I'm trying to do it the way I have been for the past few months: Trial&Error. Perhaps it would be good to point out that for some models with a high polygon/vertice count, this method is the only way it works. The crazy thing is how much time is wasted. The work itself, trying out and testing the LODs, is one thing. But the time wasted is another.

I'm familiar with the method of artificially increasing polygons/vertices. To be honest, I find it somewhat "ridiculous" and therefore didn't write about it. I did it that way with the simply designed taxi signs in one of my freeware projects, and it worked very well. I'm talking about these oversized models. If I understand correctly, you're supposed to disassemble your model into all its individual parts and export these parts as separate GLTFs, then reattach them to the (SimProp) model. This isn't an easy task, especially considering that the models were created back in the MSFS days and weren't disassembled. With dozens of models, disassembling and reattaching them to the SimProp model is simply too time-consuming. This might be acceptable for new models created specifically for MSFS24, but not for the "old" models.

Perhaps it would help to reread the relevant sections in the SDK documentation until you finally understand it :)

But what I'd still like to know is: Am I the only one having problems with large objects, and does this detailed summary help anyone?
Maybe the new LOD system really is excellent, but I just don't understand it.
 
Untitled.png


This is a 2024 Asobo model. I don't know if the artist is on the payroll or if this was a contract job. It's pretty extreme as far as LODs. 10! I know KASE was a showcase for models pre-release. Note the original minsize settings were all 0.0

LODs 4-8 are all 1.0% They have slightly decending number of vertices, but was that really needed? Also the drawcalls were a bit odd in that group of LODs. As a percentage of LOD0 vertices, LOD1 is about 40%, LOD2 is about 20%, LOD3 is about 8.25%, LOD4 is about 4%, LOD5 is about 2%... and the rest are just ridiculous (they could have gone directly to LOD9, unless I'm missing something).

The sim decides what LOD is used. LOD0 is displayed until about 19% of the vertical screen size. Not much of this seems optimized to me. From LOD0 to LOD1, maybe a lot of parts such as antennas and light housings are deleted? Then some decimation? I'm not sure Simplygon was used here. Perhaps it wasn't available at the time of creation. Maybe the excess LODs were used to force the object to display longer until it disappeared?

Asobo here just used lesser and lesser number of vertices until it hit about 150. They didn't reduce textures until LOD3 (when the 1080 display was about 17 pixels). Maybe that's the message: just keep cutting and hacking away until 150 verts, and let the sim worry about the LOD display.
 
Last edited:
This is a 2024 Asobo model. I don't know if the artist is on the payroll or if this was a contract job. It's pretty extreme as far as LODs. 10! I know KASE was a showcase for models pre-release. Note the original minsize settings were all 0.0
This appears to be the old MSFS LOD system, which allows more than 7 LODs. And it uses the old 50% method, where each model has approximately 50% fewer polygons than the previous one.

As I understand it now, the last two LODs 5 and 6 are crucial: the first LODs shouldn't be reduced too much, otherwise the transition would be too abrupt. From LOD4 onwards, you can reduce the number of LODs more generously. For LOD5 and LOD6, the basic shape of the model is sufficient. Maintaining the model's size is particularly important. This means that for a boat with masts and cranes, the masts and cranes can be reduced, but they absolutely must be preserved, otherwise the bounding box will shrink, leading to an incorrect result.

I just tried again with a relatively small boat. I attempted to apply the new MSFS24 LOD system with a maximum of 7 LODs. This worked very well; the boat previously had 10 LODs.
Next, I'll test converting one of these supertankers to the new system. There are several models with 10 LODs among them.
 
I'll present the case of a classic object for FS 3D modelers that is comparable to airport terminals, even when made with limited triangles:

A very large FS scenery object that 'could' be made either as a 1-piece 3D model or a SimPropContainer.

Boeing Everett Production Facility - 9801 27th Ave W, Everett, WA

Located 170 Meters North of KPAE Paine Field, its E-W extent is ~ 1,170 Meters, although it is not all that tall in its vertical extent.

Geographic Coordinates: 39.223056, -106.868889

https://en.wikipedia.org/wiki/Boeing_Everett_Factory


When Boeing is made as a "shell" with no inner Face textures (less "T-verts"), how does FS work its LOD switching considering its horizontal size ? :scratchch

And since "in-flight-Altitude" is still low to the ground during takeoffs / landings at KPAE, Boeing's FS visual details may still be desirable;
...especially the 'murals' on the South windows. ;)


GaryGB
 
Last edited:
In 2020 and 2024, the bounding sphere controls the display size of the object, so vertical height of a flat object doesn't matter. It's the height of the sphere that encompasses the object.
 
This appears to be the old MSFS LOD system, which allows more than 7 LODs. And it uses the old 50% method, where each model has approximately 50% fewer polygons than the previous one.
I think that's right. That model was used to advertise 2024 and how great the new display would be, so the object might have been made in 2022 or earlier, in preparation for the ad campaign. Most likely tested against 2020, as 2024 didn't exist yet. That could be true of many Asobo models.
 
Okay, I've found a reasonably good solution now, but it required a lot of manual post-processing. I also tried converting the model to a SimProb object, but that resulted in a crash twice. The other models aren't causing any major problems, though; the new method works really well for them. Thanks again, Dick, those were some really good ideas for "relearning" the new LOD system.
 
Hi, I'm following your discussion with interest since I have the same question than Tim: how to use MCX for LOD in the new FS2024 environnement. Testing with a snowmobile here.
MCX was doing good until I tested it in the sim. I realised that even if I asked MCX to create LOD 100, 60, etc, when I reload from the XML file produced, I realise that it has made LOD 615, 453, 334, etc which make the skidoo desapear really to close. Anyone got this issue?

Capture d’écran 2026-02-27 072112.png


Capture d’écran 2026-02-27 072151.png
 
<?xml version="1.0" encoding="utf-8"?>
<ModelInfo guid="{1ce309d5-2423-476a-ae08-0e815a43af3a}" version="1.1">
<LODS>
<LOD minSize="57" ModelFile="Motoneige_Tundra_LOD0.gltf"/>
<LOD minSize="42" ModelFile="Motoneige_Tundra_LOD1.gltf"/>
<LOD minSize="31" ModelFile="Motoneige_Tundra_LOD2.gltf"/>
<LOD minSize="23" ModelFile="Motoneige_Tundra_LOD3.gltf"/>
</LODS>
</ModelInfo>
 
What is the triangle count of your LODs? If they are too high for the given LOD values MSFS let's the object disappear to quick.

I need to double check the exact MCX implementation, but depending on the options MCX can also modify the LOD value to follow the MSFS 2024 rules.
 
Ok. Hi everyone. I think I have discovered the way to use the LODS.
Screenshot 2026-02-28 093839.png



first thing i was doing was replacing an older model with the same one, so you would open the object info tab and click edit, then put in a new name for the model and click "set new guid" so you can have both models in the editor, and easily use the "replace model with ....;" in the msfs editor. close this window if you want.

next open the material editor and make the changes you might need. Keep in mind for msfs24 the emissive factor needs to be higher, like 10 ish or so. and the emissive color needs to be white.

Screenshot 2026-02-28 094412.png


also if nessisary use the drawcalls tab to combine sheet and textures if you need to. making sure to resize all to powere of 2 first, then after the drawcalls are made, make sure to save the textures new name (if you changed the name and guid)

after taking care of all the textures and saving them. open lods creator.

i found using the vertex clustering method worked best most of the time. but there are other times you might want to use the quadratic based error method.

start with the "from lod 100" ---"to lod 80" and use .005 in the grid size

Screenshot 2026-02-28 095112.png


and "calculate"

someties it makes an lod that is very close to the original triangle count, sometimes it makes one a little lower...

next click the window and pick the 80 in the top "from lod" and use 60 in the next window, enter .01 in the grid size window

Screenshot 2026-02-28 095537.png


this is my method and i find it works with almost every model....

so 100 - 80, grid size .005
80 - 60, grid size .01
60 to 40 , grid size .05
40 - 16, grid size .1
16 - 6 , grid size 1
6- 2, grid size 2

Screenshot 2026-02-28 100117.png


and here you can see the triangle count slowly coming down.

and using this method, numbers, it keeps the model from dissapearing too quickly..

you may want to experiment with the "from - to" lods and different grid sizes - but this seems to be a universal way to do it.

also when you export the object - make sure you put all the lods mcx makes into the same folder in the model lib for the sim.

Letr me know if anyone can make a better version of this, but this works.
 
Ok, interesting trick! I was using this method and the objects were desapearing too quickly but I see you are using a very low grid size and not reducing the triangle count for the few first LODs. That is new to me and will try for sure!
 
On my side, I put the exact same commands to create the LOD but when in the sim, I get a melted object because MCX start with LOD 615 instead of 100. Loading back the XML shows the issue :

Capture d’écran 2026-03-04 062038.png


This is the XML content. It would be nice if we could reedit manualy the LOD in the XML:

<?xml version="1.0" encoding="utf-8"?>
<ModelInfo guid="{cc7128c3-24b8-4c8e-81b3-80b90ba5714e}" version="1.1">
<LODS>
<LOD minSize="57" ModelFile="Tracteur soufleuse-jaune_LOD0.gltf"/>
<LOD minSize="56" ModelFile="Tracteur soufleuse-jaune_LOD1.gltf"/>
<LOD minSize="56" ModelFile="Tracteur soufleuse-jaune_LOD2.gltf"/>
<LOD minSize="54" ModelFile="Tracteur soufleuse-jaune_LOD3.gltf"/>
<LOD minSize="45" ModelFile="Tracteur soufleuse-jaune_LOD4.gltf"/>
<LOD minSize="35" ModelFile="Tracteur soufleuse-jaune_LOD5.gltf"/>
<LOD minSize="12" ModelFile="Tracteur soufleuse-jaune_LOD6.gltf"/>
</LODS>
</ModelInfo>
 
Back
Top