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

Drawcall batching, a no-brainer?

arno

Administrator
Staff member
FSDevConf team
Resource contributor
Messages
34,345
Country
netherlands
Ever since the release of FSX SP2 enabling drawcall batching has been a popular method of increasing the performance of scenery. The basic idea behind drawcall batching is that the scenery engine will gather all polygons with the same material, even if they belong to different objects, and then render them in one go. This eliminates the overhead of switching material and texture settings multiple times and therefore improves the performance.

But is it a good idea to always enable drawcall batching on objects? For a while we already know that drawcalls with too many polygons in them give trouble. They can result in disappearing objects for example. So in that case you better turn off the drawcall batching.

Last week while debugging an issue reported on the forum I found out that drawcall batching can have one more negative side effect. It turns out that when objects are used at higher altitude, the drawcall batching results in an offset of the position of the object. I never noticed this myself, since I’m from the Netherlands and always test my objects at sea level. But when you make scenery in a mountainous area you will for sure encounter this. So also in that case it might be better to turn off drawcall batching.

By default ModelConverterX has drawcall batching enabled, but you can easily disable it in the exporter options. If you encounter any of the issues described above, it might be a good try.

So it turns out that drawcall batching is not the magic performance solution we have thought for a long time, but if you are aware of the limitations you can still make good use of it.

Continue reading...
 
At the moment we use drawcall batching for mass-placed library objects like cars, grass, clutter; objects that are reused a lot and share a texture sheet with each other. As these objects aren't too complex, I would definitely recommend using drawcall batching for them. Of course, this comes with the issue of objects shifting at airports at a higher altitude, but I really think it's worth working around for the performance boost.

However, as you say, I would recommend not using drawcall batching on buildings that have more complex geometry, and obviously not on buildings that use unique texture sheets.

Thanks,
Russ
 
Also, a quick note. I've noticed that alphas on a drawcall batched object act differently to alphas used on a non-drawcall batched object. There's rather a lot of sorting issues, so keep your eyes open for that.
 
I've recently discovered that even at an altitude of 500m drawcall batching causes offsets of 50cm and more.
Took me a while till I stumbled over this thread so Arno, thanks a lot!

I'd still like to use drawcall batching for mass-placed / library objects. I think in most cases the shift doesn't really matter
here or can be corrected with IS. BUT if you want to have shadows beneath those objects it would require exact placement.
So instead of having those shadows in the groundpolygon you could create a plane beneath the object with a slight z-axis shift
and export that along with the object in one model with Default Transparency set in the material.
 
Back
Top