Slooooooooow compilation

In my last blog post I mentioned that the new [FwTools] version had solved most of the problems I had with my markings compiler. That is true, but it also turned out that the speed of the compiler had not improved.

Let me take the center lines of Schiphol airport as an example. I finally figure out how to compile them without errors into a good looking scenery. But I should mention that there are about 13000 line segments that make up the marking on the entire airport. The tool I wrote combines these segments into LOD grids and also gives the lines a width. So in the end that gives me one complex polygon for all the markings in a certain LOD grid.

This technique has a few advantages. For example I can draw all lines in that grid in a single reference point. This is important for the performance, because if I would draw them all with their own reference point it would bring down the frame rate too much. On the other hand if I draw all markings of the entire airport in one single reference point, the performance also suffers as markings are drawn on the other end of the airport (miles away) that you can’t even see. So dividing it into tiles gives me the advantage of limiting the display of segments, but still with a good performance. Another advantage of combining the lines is that it allows me to make smoother connections between the different lines. This look much more realistic.

So, did I mention the word slow in the title of this post? I found out that when I performed all operations in the correct order, it takes something like 24 hours to compile the center lines of Schiphol. And of course there are a lot more lines to draw, like roadmarkings, parking lots, safety lines, etc. So you can figure out how much work my PC has to do.

But as the pictures below show, the end result looks very nice. So I guess it is worth the effort. And the good news is that I have a Core2Duo CPU, so that means I can run the compilation tool twice at the same time.

Leave a Reply

Your email address will not be published. Required fields are marked *