Animation mapping

The latest development release of ModelConverterX has a new feature that can help in converting models between different sims. Often these simulators use different names for their animations. For example FS2004 and FSX have different names for certain types of animations. Before ModelConverterX used a hardcoded mapping when importing these models, but now this mapping has been made user configurable. This way you can control better how the animations are exported.

Internally ModelConverterX uses the FSX/P3D animation names, as defined in the modeldef.xml file. At the moment two mapping tables are configurable, one from FS2004 names to FSX names and one from X-Plane names to FSX names. The manual provides all the details on how to configure the mapping.

If you find that the default mapping table that ships with ModelConverterX is missing an animation mapping that is generally available, please post this information on the ModelConverterX forum, so that I can include it in the default mapping file in future releases.

Configuration files

For many years I have been using the standard .NET settings files to store the configuration options in my tools. But this week I learned that the way I was using them was not really the most efficient way. This resulted in performance and stability issues. So therefore in the current development release I have modified how the settings files are used. You should see a slightly improved performance and less stability issues and crashes as well (especially when running multiple instances of the tools).

The downside of this change is that you might see that some of your options are lost when you install the latest development release. So if you made specific settings in the options it’s best to double check they are still there.

If you have any issues with this new version, please post them in the forum.

Drawcall Minimizer improvements

In the latest development release of ModelConverterX I have included a number of improvements of the drawcall minimizer:

  • The performance of the drawcall minimizer has been improved a lot. You should see that it takes a lot less time to calculate the combined texture sheet now.
  • There is an additional option to specify that textures with an alpha channel should be excluded. For some objects it works better to keep the textures with an alpha channel separate, for example because they need different material attributes.
  • There is an additional option to specify that you want to exclude specific textures from the combined texture sheet. Any texture you select to be excluded will not be placed in the combined texture sheet. You can use this option is a specific texture gives issues or is better kept as well.

scenProc building texture configuration change

I have made a change in the 3D building feature in scenProc that was introduced about two weeks ago. At that moment the building texture configuration file contained both a list of wall textures and a list of roof textures. I have realized that is not so flexible, as you might want to use the same wall textures, but have different roof textures for flat and sloped buildings.

So the Create3DBuilding step has been modified now, it takes two building texture configurations as input. One for the walls and one for the roofs. This gives you more flexibility. The Building Texture Configuration Editor has also been updated, so that you can only specify one list of texture now.

NVidia vs AMD: Shader differences

Around Christmas last year I made quite some changes to the shaders that ModelConverterX uses to be able to implement the PBR materials. Around that time I also optimized the code of the ModelConverterX preview to have better performance and less memory usage.

This week it turned out that these new shaders did not give consistent results however. It turned out that on some graphics cards not all output was visible in the preview. For example the grid was sometimes missing or in worse cases no model did show at all.

I have tracked this down to differences in how different graphics cards work with the OpenGL shaders. Although they all compiled the shader code fine, the results were not the same. In general it seems NVidia was a bit more tolerant, which results in most items showing there. AMD cards seemed a bit more strict and therefore had more issues.

I have modified my OpenGL and shader code now so that it should work more consistent over different graphics cards. Luckily my new development laptop has both an integrated AMD and a NVidia graphics cards. So at least I can easily test with two different cards.

The current development release of MCX does contain these fixes. But if you still encounter issues with the preview please let me know. I guess some of you must have been having issues for the last two months, but only this week it was reported on the ModelConverterX forum.

3D buildings in scenProc

Creating autogen buildings with scenProc is quite easy. But the autogen buildings also do have some drawbacks, mainly the fact that they need to be rectangular. Therefore it has been on the scenProc wishlist for quite a while already to be able to create MDL buildings for footprints that are hard to represent with autogen.

Actually the current scenProc version can already make simple untextured buildings with a simple roof shape. But over the last weeks I have been working on improving this logic and also making sure that textures are mapped realistic on these procedurally generated buildings. The screenshot below shows some work in progress results of that.

There are still some issues that I need to solve, but I hope to provide this update of scenProc in the not to far future. I’ll keep you posted about the progress.

PBR support in ModelConverterX preview

After the recent performance improvements to ModelConverterX, I have been working on another feature that was on my wishlist for a long time and that is supporting rendering PBR materials in the preview. The next development release does add this feature for P3D PBR models. Below you see a screenshot of a test model with PBR in ModelConverterX (thanks to Bill Womack for sharing this model with me for testing).

When the “Is PBR material” attribute is set to true, ModelConverterX will use a different shader to render the model part using the PBR techniques. I think I have added most attributes that P3D has for the PBR material as well, but if you find any issues let me know.

The next step is to update the ModelConverterX shader to also work with the MSFS PBR materials. This should hopefully be a relatively easy step now that I have the P3D PBR materials working.

ModelConverterX performance update

Over the past weeks I have been working hard to make ModelConverterX work more efficient. And the good news is that I have finished this improvement now, so the next development release contains these optimizations. So this is my (slightly early) Christmas present to all ModelConverterX users. It will give you more available RAM left for other things, as ModelConverterX should use about 50% less for most models.. And not only that, but you should also see that the preview is more responsive when rotating or zooming.

One general warning though, the performance optimizations changed how ModelConverterX works internally. I have tried to test all the different functions, added more test cases to my source code to cover even more functionality, but it might be that some bugs have slipped into this present. If you find such a bug, please let me know in the forum so that I can fix it.

And I have another surprise update in mind that I will start working on now. Maybe that can become my new year present to all ModelConverterX users…

MCX performance optimizations

Lately it has been quiet with new features for ModelConverterX, but that doesn’t mean I have not been busy. After optimizing the import performance of glTF files for MSFS, I found quite a big inefficiency in the way ModelConverterX stores the model data internally. So I have been working on optimizing that internal structure of the last weeks.

The performance gains of it turn out to be quite big. As memory, CPU and GPU usage can be reduced a lot. The screenshot below compares the current build I have in development with the 1.4 stable release. In both cases I have loaded the default FSX Boeing 747-400 model. As you can see memory usage is more than half (and if you remember textures take the same amount of memory the gain in the part I optimized is even more). Also the model pans and rotates also more smoothly due to the optimizations.

I still need to do more testing to make sure I did not break functionality, as it was quite a fundamental change deep inside ModelConverterX. So it might take a little while before I can put this out to the community, but something is coming your way soon.