• 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.

Creating your LOD Models

Messages
264
Country
unitedstates
I finally learned how to export LODs today for MSFS and got it to work after following the workaround for the exporter. Now what I am trying to figure out is how to you actually make your models lower detail in Blender for each LOD level? It it just as simple as using the decimate modifier until you get to a triangle count that you like for that level of detail and the model still looks ok? For example the SDK says your last LOD should have around 100 tris. The model I am currently working on has 19,000 tris at LOD0 and it is composed of a bunch of different mesh parts. I copied all the parts to each LOD level and then removed parts that you wouldn't see as you move away to each level. This worked as my next LOD2 just by removing some detail parts like antennas, satellite dishes, and small items brings it down to 9,000 tris. The next LOD3 removes a few more parts from the mesh and gets it down to 5,000 tris. My last LOD4 that MSFS wants to be around 100 tris has 2,500 tris. This was just purely by removing parts. Should I use decimate on all LODs to bring them down even further? I tried to decimate LOD4 and it looked ok until I got closer to 100 tris and then it kinda warped the sides of my building into a slightly different shape. However I don't think this would be much of an issue at LOD4? I'm just looking to see if I am on the right track here and to figure out how FS Blender designers are making their LODs.

Thanks!
 
Messages
110
Country
unitedstates
The guidelines say something like each LOD has half the geometry, half the textures, etc. But, I try to keep in mind that they are they are only guidelines and that we are striving for a balance between appearance and resource use.

Also kind of depends on what is being modeled. A major building at an airport (of which there will only be one) will probably be rendered in an environment with some other major elements . . . but probably not much seen from an airport in a different part of the city. And, as we are all aware, one does not need to render all the details of the building when at the end of the runway (or flying over at 10000 feet).

From a different perspective, let's take the example of a ramp or environment object -- say a particular ramp light, or pedestrian/worker barricade -- there might be hundreds of those at a large airport. Flying over at 10000 feet, those hundreds can hit performance just as badly as a single large and detailed object, if they are being rendered in all their detailed glory (despite being not visible from the distance).

So, I just think: "What can really be seen when it is this far away?, and this far away, and this far away?"
 
Messages
264
Country
unitedstates
Those are good points to think about. I guess what I’m trying to determine is that balance. For example I used the decimate modifier on one of my LODs until some smaller faces were removed leaving holes in the model. I tried in MSFS just to see and as I got further away I could see those holes appear. So I suppose this was probably “too much” decimation and I should back off a bit on that LOD level. The lowest LOD which was much further away didn’t show too badly in MSFS even though the shape of the building was slightly deformed. I suppose there is not only one way to do this just like everything else! Lol

Truth be told I don’t even really need LODs for this airport as it’s not in a city and most of my details are in textures anyway and not the mesh. But I am trying to do what I can to learn so I can do it correctly in a larger more dense area.
 
Messages
110
Country
unitedstates
Others may have different ways, but early days experience (for FSX) made me leery of letting a program do decimation or create LODs. By hand takes more time, but makes the result certain. Frankly, I was writing also for any readers who are absolute beginners -- still trying to get their heads around what and why. I am at best a slightly talented amateur, after developing for more than ten years . . . and still learning. ;)
 

rhumbaflappy

Administrator
Staff member
Resource contributor
Messages
5,932
Country
us-wisconsin
Sometimes we over-complicate things in design. LODs are actually pretty simple in MSFS. Here's an example that uses 3 different glTF models (each exported as non-textured, non-msfs glTF models):

XML:
<?xml version="1.0" encoding="utf-8"?>
<ModelInfo guid="{d6281fca-84f9-477d-9c40-ffed14625fe2}" version="1.1">
  <LODS>
    <LOD minSize="100" ModelFile="icosasphere.gltf"/>
    <LOD minSize="50" ModelFile="cube.gltf"/>
    <LOD minSize="5" ModelFile="monkey.gltf"/>
  </LODS>
</ModelInfo>

They show at 100% occupying highest LOD bounding box vertical screen view, 50% of highest LOD bounding box, and 10%...

The individual models do not need an XML to define them... only the whole object combination, as above. The xml can be handmade after the model exports from Blender.

Also, most scenery models don't need any LODs. They are just not detailed enough to warrant the work. Aircraft are a bit different as most consumers want rivets and leather stitching, etc... So there is a real need to eliminate that amount of detail as you are further away in the view. The it all becomes numbers of polys and textures.
 

Attachments

  • LOD test.zip
    34.9 KB · Views: 116
Last edited:
Messages
264
Country
unitedstates
Others may have different ways, but early days experience (for FSX) made me leery of letting a program do decimation or create LODs. By hand takes more time, but makes the result certain. Frankly, I was writing also for any readers who are absolute beginners -- still trying to get their heads around what and why. I am at best a slightly talented amateur, after developing for more than ten years . . . and still learning. ;)
I appreciate everyone’s response and input. I would still consider myself a beginner at this point. Had not touched any scenery design for several years until FS2020 appeared so I am re-learning many things as well as learning the new methods
 
Messages
134
Country
italy
As of 1.17, LODs weren't much needed but it seems that LOD 00 now triggers just a few meters away from the actual model (I think for performance optimization console-wise). This said, I'd be prepared in creating LODs for all models :D

Back on original topic, the way I work is simple. I export my LODs with live sync (sim open, model placed. Except a few times where it gets bugged, it updates in real time).
I export my LODs with the default values then tweak the distance to make the model change almost invisible. Also I do use Vertex Paint on LOD3, which is weightless texture - wise and, for instance as of now since I am working on a big airport, buildings on one side of the runway doesn't impact performance on the other side.


For models, it's also as this simple. Decimate is your best friend of course but sometimes you would opt for NGons with a decimate planar. On very loopcutted models it can reduce the triangle count up to one half of the original model. If your building has some "dirty" topology instead, opt for the collapse decimate. Also some details can be removed (always using the Sim as a reference) from one LOD or the other, air conditioners for instance, or interiors of some hangars / buildings. Sometimes you can isolate some items (in the case for a static helicopter rotor for instance) and turn a mesh into a plane. That would save a lot of GPU power. Just remember this. Less polygons, less GPU stress, less textures, less VRAM / Hybrid RAM used ;)

My quick 5 cents
 
Messages
264
Country
unitedstates
As of 1.17, LODs weren't much needed but it seems that LOD 00 now triggers just a few meters away from the actual model (I think for performance optimization console-wise). This said, I'd be prepared in creating LODs for all models :D

Back on original topic, the way I work is simple. I export my LODs with live sync (sim open, model placed. Except a few times where it gets bugged, it updates in real time).
I export my LODs with the default values then tweak the distance to make the model change almost invisible. Also I do use Vertex Paint on LOD3, which is weightless texture - wise and, for instance as of now since I am working on a big airport, buildings on one side of the runway doesn't impact performance on the other side.


For models, it's also as this simple. Decimate is your best friend of course but sometimes you would opt for NGons with a decimate planar. On very loopcutted models it can reduce the triangle count up to one half of the original model. If your building has some "dirty" topology instead, opt for the collapse decimate. Also some details can be removed (always using the Sim as a reference) from one LOD or the other, air conditioners for instance, or interiors of some hangars / buildings. Sometimes you can isolate some items (in the case for a static helicopter rotor for instance) and turn a mesh into a plane. That would save a lot of GPU power. Just remember this. Less polygons, less GPU stress, less textures, less VRAM / Hybrid RAM used ;)

My quick 5 cents
This is all great info. Thanks. It will be very useful in my future models.
 
Top