Today I was “playing” a bit with a profiler on ModelConverterX. This gave some interesting insights in how often certain functions are called or how much time is spend in certain functions. One of the things I noticed was that while loading SCASM API macros the triangulation of the polygons took relatively a lot of time. So I decided to have a look at the code involved and found out that the calculations to determine if lines intersect were to blame for all this. So I have rewritten this logic now and that seems indeed to have increased the speed … Continue reading Better performance for line intersection calculations
The functionality in ModelConverterX to create lower level of detail versions of a model was running very slow for complex objects. I have not fixed that completely (yet), but I have made some changes to this functionality that should at least make it easier to work with. The calculation that simplifies the object is now running on a different thread, so that at least the rest of the tool should remain more responsive. I have also added a progress bar, so that you can see how far in the simplification process the tool is already. See the screenshot of the … Continue reading LOD Creator improvements
You could say that recently unions have played a role in my life. First there has been my wedding one and a half week ago of course, forming a nice union between me and my wife. But that is not what I want to talk about in this blog post. I have also been working on some code that allows me to do boolean operations between polygons. This functionality is something that will come in handy when I start working on my new ground polygon tool, It can for example be used to automatically slice the polygons into piece of … Continue reading Unions
A little while ago I already wrote about the fact that I was working on my own texture loaders for the ModelConverterX tool. I have now finished the first versions of the loaders I find most important for the tool. I say first, as I am sure some bugs will be surfacing when they are used by more users. So I have now made loaders for the DDS, BMP and R8 format. The DDS format is common in FSX and I can now read DXT1, DXT3 and DXT5 variants. Figuring out what their difference on the binary level are was … Continue reading Reading of textures
Loading the textures files into the ModelConverterX tool is something that has given me quite some challenges already. I have used different libraries for it already and all of them gave me some trouble. At the moment I am using the library by Martin Wright and although this one can read all the files I want, it is not a very fast library. So this makes the loading of models relatively slow. That is why I decided to have a look at how the different texture formats exactly work and see if I could create my own texture file loaders. … Continue reading Texture file formats
Just after the release of the new ModelConverterX version, fellow MVP Lefteris reported the first bug to me. That in itself was not so weird, as there have been many bugs reported during the previous testing phases. But the bug that was reported was a bit unusual. It seemed the tool did not run on 64 bit Vista. I guess that was a combination that had not been tried before during the alpha testing. After some testing we were fortunately able to locate the problem and I have produced a fix for it now. The new version, that also works … Continue reading ModelConverterX and x64
It’s already some days ago that I wrote that the next version of ModelConverterX is almost ready. One reason for the delay is that I got a cold this week and that reduced the amount of time I would like to spend behind the screen a bit. But another reason is that I, and I guess more developers, tend to forget how much time is needed to write or update the user manual. That process or also the process of creating a graphical user interface that is user friendly (and idiot proof) seems to take up more time when programming … Continue reading User interface and manuals
Recently I bought an interesting book, Real-time rendering. I have not completely finished reading this book, but it contains a lot of useful information. For example I have found there solutions for some problems I had while working on my ModelConverterX tool. But the explanation of how the rendering process works also give a better insight on what has an influence on the performance when rendering. This is not only interesting to understand better how FSX works, but that is also something I can use at work when dealing with our image generators there.
Today I did some more work on the ModelConverterX tool again. There were some complex polygons that were not converted into triangles correctly, so I had to improve the triangulation algorithm. I did make such an algorithm a while ago for another tool, but that one was for 2D polygons only. So I had to convert it into 3D to work correctly with 3D objects. This turned out to be a lot of fun in the end. With some nice vector and matrix manipulations it seems you don’t even need that much code to triangulate a polygon. And it was … Continue reading Triangulation
Today I was looking around on the web for some icons to use in the ModelConverterX tool. Of course there are a lot of places where you can buy very expensive icons to use in your application, but that was not really what I was looking for. In the end I came across the Tango Desktop Project, a project with the aim to help create a consistent graphical user interface experience for free and Open Source software. They have a nice set of icons and I think you will see some of them appear in my tools in the future.