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

MSFS 3D design optimization tips

Messages
10
Country
spain
Hi everyone,

What is more FPS friendly for distant LODS, a complex 3d model (17.000 tris) with no UV maps and no textures (only colors in materials), or a low poly 3d model (800 tris) with UV maps and textures?

Someone know where can I find a guide about 3d modeling optimization for games?

Cheers
 
Messages
502
Country
italy
Hi everyone,

What is more FPS friendly for distant LODS, a complex 3d model (17.000 tris) with no UV maps and no textures (only colors in materials), or a low poly 3d model (800 tris) with UV maps and textures?

Someone know where can I find a guide about 3d modeling optimization for games?

Cheers
Every 3d engine has its optimization, the fs one has changed from time to time, the following are latest asobo recommendations
The latest SIM (MSFS) has a very good profiler to monitor every parameter of the 3d object





There is no plausible reason at drawing 17k tris at long distance (how you can tell such details from a distance?)

A distant Lod should be low poly, no texture, no materials, only vertex color if your need it
 

=rk=

Resource contributor
Messages
3,672
Country
us-washington
He is not using the polygons to represent geometric detail, he is using them to define variations, using only vertex, or polygonal coloring.
 
Messages
10
Country
spain
47186becb27f65306f2711485c702dac9f80ad9a.jpeg
I am fixing in MSFS the Asobo C152 LODS. The addons liveries dissapears at some LODS, exactly at the LOD04 that doesn't loads any livery. The original LOD04 has 17k tris and decals method for coloring. Mine model has 800 tris and the fuselage, wings and tail rescaled original textures. My question was if i'm doing right or the Asobo method is better for performance.

Thanks for this documentation Mamu :)

Cheers
 
Messages
502
Country
italy
View attachment 82810 I am fixing in MSFS the Asobo C152 LODS. The addons liveries dissapears at some LODS, exactly at the LOD04 that doesn't loads any livery. The original LOD04 has 17k tris and decals method for coloring. Mine model has 800 tris and the fuselage, wings and tail rescaled original textures. My question was if i'm doing right or the Asobo method is better for performance.

Thanks for this documentation Mamu :)

Cheers
Asobo "optimization" vary A LOT from object to object
I also find useless that amount of poly, a bit on the higher side imho, and maybe you can achieve the same appearence with a quarter of that
(Anyways, the plane is THE character of this game, I prefer using resources on them than an hangar, so, not that bad)

To my findings, the worst performance eater are "drawcalls"

With the statistic profiler that I was taking in my previous answer you can find lot of useful info


Keep in mind that you have a drawcall per material per mesh

I don't have a clue about "the decal method" for coloring, decals are texture in my mind,
In the specific case that looks like vertex color (but could be wrong, can't check it at the moment)
that doesn't require drawcalls in the Asobo engine
Vertex color also doesn't require materials.
So, if that is a single mesh, with vertex color for coloring, it is drawn in a single drawcall

While your 800 tris with textures can be heavier on the engine than their (textures also require being loaded into GPU memory and also fetched on the HDD)
 

=rk=

Resource contributor
Messages
3,672
Country
us-washington
Keep in mind that you have a drawcall per material per mesh

I don't have a clue about "the decal method" for coloring, decals are texture in my mind,
In the specific case that looks like vertex color (but could be wrong, can't check it at the moment)
that doesn't require drawcalls in the Asobo engine
Vertex color also doesn't require materials.
This is not consistent with what I have learned about previous versions of the sim. I am not disputing the validity of your belief, but you may be mistaken and I can use software examples to assert this opinion. In FSX and P3D, each polygonal color, or vertex color, demands a draw call. Each texture demands a draw call, there is no draw call limitation for geometry, the "draw" is the process of applying color and untextured polygons do not affect the render engine. Geometry has its own particular bottlenecks. "Materials" in the strictest sense are combinations of textures.

From this follows, that it is much more efficient to place any and all polygon color variations onto one single texture, that has a single draw call.

Now, if you open the software MCX and go to the optimization panel, it will actually count all your individual polygon colors, all your individual textures and MCX will offer to place as many of these as possible, onto as few texture sheets as possible, to minimize draw calls. It will also provide a total draw call count that is itself consistent with the individual polygon colors. If you look at a texture processed by MCX, you will see a small field of several columns of colored boxes. These are the polygonal colors, converted to - not just a single texture, but a small patch of real estate on a texture that can have many more smaller textures mapped to it, as well.
 
Messages
502
Country
italy
This is the what MSFS 2020 SDK says (and basically the source of my thoughts)


(I have exported objects with only vertex color in Blender and without materials and the color in msfs is what was expected)

MCX is a great piece of software , have used it in the past.

MSFS is shipped with its own SDK, it's own profiling tools, its own Lod tools, and since I'm working with them I should trust them first

Will report back the number of drawcalls of the MSFS profiler and see if MCX has the same numbers
78e0e03489f3d825fb26ead610f5e3be.jpg


Inviato dal mio Mi 9 Lite utilizzando Tapatalk
 

=rk=

Resource contributor
Messages
3,672
Country
us-washington
Thank you for the clarification. Still trying to wrap my head around the implications that arise from so fundamental a difference. Colors only need 3 or 4 bits to define the values and textures need at least 16 bits for mapping, so that might be part of it. The quoted passage also recommends using software settings to control reflection and roughness, as opposed to using a metallic texture, which really makes a strong argument in support of using polygon color, imo. However, if you go up a level, to "General Principals," we're informed that mesh instances with the same material are grouped in one draw call.

material.jpg


So it remains the case, that models with all colors mapped to a single texture, will have only one draw call and this would be regardless of the number of instances of the textured mesh.

Therefore and if I'm not mistaken, a low polygon, high LOD object, vertex colored, would have a single draw call, as would the same object with a single texture and if it meant increasing poly's to introduce more polygon color, that would reduce efficiency.
 
Messages
7,103
Country
us-illinois
IIRC, to reduce a 3D model geometry complexity (decimation) and use the original texture materials, is a "re-topology" work-flow.

IIUC, a reduced complexity / low LOD version of the 3D model that does not use the original texture materials, but instead uses Decals to create some amount of apparent visual detail at a distance, may still have lesser draw calls (and better performance) if vertex colors are used to color the polygon Faces of the decal mesh ...in spite of a (small ?) extra amount of mesh geometry (after decimation).

https://docs.flightsimulator.com/html/Asset_Creation/3DS_Max_Plugin/Materials.htm?rhhlterm=Decal

"Decal
The Decal material type is for geometry decals, which are shapes rendered on top of another mesh. If several decals are to be rendered on top of each other, they have to be in the same sub-mesh, or it will cause rendering artifacts. The order of the sub-materials will determine the order in which they are rendered (first sub-material is rendered first). Meshes with this type will be rendered in a special pass between the deferred and the transparent pass. This type has additional parameters, explained here:

Decal Per Component Blend Factors"


BTW: Some additional "Decal" results on the MSFS SDK Docs website:

https://docs.flightsimulator.com/html/Introduction/Introduction.htm?rhsearch=Decal


AFAIK, MSFS also uses vertex colors to render local variations in 3D object lighting within a scene: :idea:

https://docs.flightsimulator.com/ht...s.htm?rhhlterm=Brightness&rhsearch=Brightness




PS: IIUC, although MSFS used OSM-3D data to populate scenery in areas outside the USA where it instead used MS-Building data, use of vertex color for lower LODs may still look better than what we might otherwise see in a default render of the OSM-3D buildings.



400px-Osm3d_frankfurt2.jpg


300px-Heidelberg_II.jpg



AFAIK, Decals on MSFS intermediate distance LODs of 3D objects 'may' offer a better run time realism than pure vertex colors, while still providing better run time performance than cloning higher LOD 3D objects to meet MSFS' impending multi-LOD requirement.

One might wonder as well, whether MCX can implement Decals / vertex colors into a LOD auto-derivation process for MSFS ? :scratchch


GaryGB
 
Last edited:

=rk=

Resource contributor
Messages
3,672
Country
us-washington
This section goes into great detail over the intended application of decals, which appear to be created for instruments specifically, as it is the only location of the term "decal" in the SDK documentation, despite the fact that many of us have fond memories of applying roundel decals to airframes.

 
Messages
10
Country
spain
Okay so that's the reason why Asobo disabled the livery in LOD4, and uses the decals method, performance. I can't deal with transform creators' liveries on to a decal method. So I think the most fps friendly in my case would be use the textures fuselage, wings and tail within only one texture. I think the effort worth it, I hate when taxing and the planes switchs colors while you are getting closer xD.

Thanks all for the explanations and the links, I have started now with 3d modeling and i have a lot to learn.

Cheers
 

Pyscen

Resource contributor
Messages
2,813
Country
us-texas
Hi all,

What is more FPS friendly when doing UVs, to use seams or unwrap one of the faces separately?
Seams aren't used to be FPS friendly or unwrapping one face at a time. Seams are used so Blender will cause the face or faces to lie flat. By your images or pictures. I'm wondering why the faces have been triangulated. There is no need for them to be, especially before UV unwrapping. The compiler will do that for you - no manner what Sim you are creating for. Leave the faces as Quads.

To answer your question, the least amount faces you have, the better, but it doesn't have to do with "how" the faces are created. In the last picture, it's a cylinder shape is it not? If it is, the seams should be placed: one, around the bottom. and another seam up and over the top and down (inside the cylinder - I hope that makes sense). The last seam needs to be on the inside of the cylinder at the bottom. As a general rule... Seams are usually placed between 2 different materials - but not always ;) .
 
Last edited:
Messages
10
Country
spain
Hi :)

The pics are from an imported default aircraft from MSFS only to make the example pics, I also don't like to use triangles hehe.

Sorry for my english, my question was a little bit confuse. I'll rewrite it. Once the model is running at the sim (MSFS), what model will be more FPS friendly, one made using seams, or one made without seams?

I discovered that I obtain the same result without using seams (but is more laborious). For example, unwraping the whole cilinder except one face to let the UV lies flat, and unwrap the last face alone.

Cheers
 

Pyscen

Resource contributor
Messages
2,813
Country
us-texas
Hi...

It depends on the model/ object if seams are needed or not (such as how much detail there is). Also depends on the quality of the textures for that model/ object. you want. The point of seams is so the polygon(s) or face(s) lies flat without stretching or malformed. To put it simply, it's really up to you. The quality and time you put into it will show in the end.
 
Last edited:

Pyscen

Resource contributor
Messages
2,813
Country
us-texas
Hello...

To follow-up:

With the help of Blender within the UV Editor, you can check to see if the islands (polygons/ faces) are stretched in 2 forms. The 2 forms are Angle and Area. The one you are most concerned about is Area. The closer to blue in color is what you are wanting. See Image:

Check_strectch.png



YouTube Video:

The video has tips on correcting by using seams and other ways.
 
Messages
10
Country
spain
Thank you very much! :)

I discovered that unwrap using seams making it easy, and later deleting the seam in edit mode, the UV map doesn't change xD. Looks like the seams are only used by the modelling program and not by the graphic engine ^^
 

Pyscen

Resource contributor
Messages
2,813
Country
us-texas
The changes aren't appearing because the 2 editors (modeling and UV editors) are not synced. In the video, I believe he touches on that also (I think he turned it off in the video.) There are times that you don't want them synced, but most of the time you should have them synced. If you can't locate where or how to sync them, I will show you.
 
Top