Tonight I was able to fix the remaining bugs in my tool to generate the autogen forests from the OpenStreetMap data. One of them was that I didn’t know that in the AGN file all polygons need to be closed (first vertex the same as the last vertex). Below are some screenshots of how it looks in the Annotator tool and in FSX now. The photo scenery I use is the NL2000 scenery of the Netherlands.
Now that the forests are working, I am going to move to the houses. Let’s see what I can do with the house footprints from the OpenStreetMap data…
As I mentioned in my previous blog posts I am trying to create autogen from GIS vector data. For my first test case I am using the OpenStreetMap data of the Dutch island of Schiermonnikoog. Below you see a screenshot from the data, as well as a screenshot in the Annotator tool showing the autogen I have made.
It isn’t perfect yet, but I am quite happy already with the first results from tonight. Some of the forests are still missing, so there are still a few bugs left in my tool. But on the other hand quite a big part is already there.
Next step after the forests will be to try the footprint data of buildings that is also in OpenStreetMap, since that was my prime goal anyway. So see if I could fill whole areas with autogen buildings. I’ll keep you posted about the progress.
If you download the development release package of my tools, you will find a new tool in there from today. I called it agn2txt and it dumps the content of an autogen AGN file to a readable text file. It is a tool that I used which learning more about the autogen file format. I have included it, because I thought it might be useful for others as well.
I have plans to later also add a txt2agn tool that can do the reverse step, so that you can make minor changes to the autogen by editing the TXT file. But I haven’t come to that yet, as I first want to do some more experimentation with making autogen from GIS vector data.
Tonight I have been improving how ModelConverterX reads levels of detail from FS2004 MDL files. The LOD values are now calculated more accurately. Since I spend quite some time figuring out some details I had figured out last year already (but forgot since then), let me sum up my main findings about levels of detail:
The LOD switching distance is determined by the object radius and the LOD value. For example a LOD value of 40 means that the object will switch when 2.5 times the radius of the object covers 40 pixels.
The LOD value of the highest LOD is not relevant, since this LOD is never tested. So when you have an object with LOD_010, LOD_040 and LOD_100, it will display the same as that object with LOD_010, LOD_040 and LOD_200. For ModelConverterX this means it can not accurately read the highest LOD value, since it is not stored in the MDL. ModelConverterX will assume it is twice the LOD value below it.
The radius of the object used for LOD calculations is a sphere fitting tightly around the object, so it is not the radius of the bounding box.
One of the items I am changing in the new Library Creator XML 3.0 is how you save your library. Before you had to save the XML and compile the library to a BGL. Now those two actions are combined in one form that saves your library. You can choose if you want to save BGL, XML or both. Below you see the current version of this save library form. I am still tuning the user interface a bit, so in the released version there are probably some small changes.
The good news is that the first (beta) release of the new version is getting close, I have almost finished the features and only need to do some additional testing to make sure there are as little bugs as possible. The new version will be included in the development release packages, that also contains the latest ModelConverterX and FXEditor. The first version will have the improved user interface, the option to open your objects in ModelConverterX from Library Creator XML and the option to list all textures used in a library. The features to read BGL files directly or to add objects directly from ModelConverterX to a library will be added later.
I am working on an updated version of Library Creator XML. Not that there is much wrong with the current version, but I would like to add a few new features. And to be able to add them easier I decided that I would first cleanup and optimize the current code a bit. So that’s what I am doing at the moment. I will also give the tool a new user interface that is more in line with my recent tools. Below you see a first screenshot of this new user interface.
So what kind of features do I plan to add? Here are the ones that are at the top of my wishlist:
Export list of textures used by library
Open BGL library files in LibraryCreator XML
View an object from the library in ModelConverterX
Add objects to a library directly from ModelConverterX
Let me know if you have ideas for other interesting features. Not all of the feature above will be available in the next release by the way, I am going to add them gradually.
For a while I am thinking about how to integrate the different tools I have made better. An example of this integration would be to open objects from Library Creator XML directly into ModelConverterX or easily insert an object from ModelConverterX directly into a library. While playing with those integration idea I had another idea. ModelConverterX already has a simple object placement function, so why not extend it with a proper object placement tool? Like a FSX update of ObPlacer XML. Below is a quick video of a prototype tool I made for this.
My question is would yet another object placement tool be useful or not? We already have Instant Scenery and WhisPlacer. And a tool like ADE can also place objects at your airport already.
I am not planning to give my tool full live preview capabilities like Instant Scenery or WhisPlacer. Many because personally I never use that feature. As you can see in the video I have been experimenting with using background images like OpenStreetMap or Bing to show reference maps you can place the object on.
Let me know what your ideas are about such a tool and maybe in the future this tool can be added to the suite. But don’t hold your breath for it, this video is just a prototype and I have no fixed plans yet to make it a full tool.
In 2004 I started a community website for scenery designers and I called it SceneryDesign.org. In 2006 we decided to rebrand this site to FSDeveloper and expand it to discuss all kind of addons. All the time I still kept the SceneryDesign.org domain as well, it was just pointing to FSDeveloper.
On the right you see the origional SceneryDesign.org logo, it might look familiar to you. That’s because I am also using it as the icon for (almost) all of the tools I make for FS. So I have now decided to re-use the SceneryDesign.org domain as a central place to get information about my tools. So on this new website you will find the following:
An overview of all the tools I made, with links to manuals, downloads and support forums
After all the theory I blogged about yesterday, I thought it might be a good idea to illustrate the difference today. So let’s take a quite common example. I have taken the threshold coordinates of runway 06-24 from Amsterdam Airport Schiphol. And I have chosen the reference point to be near the middle of the runway. What are my XY coordinates of the threshold when I am modelling the runway in my 3D editor?
The two screenshots above show the XY coordinates for the threshold of 06 (top picture) and 24 (bottom picture). In the screenshots you can see both the flat earth coordinates (as used by FS2004) and geocentric coordinates (as used by FSX). Let’s ignore the Z component of the geocentric coordinates for now, although that shows that at the distance of this runway (1.5 kilometre for the reference point on each side) the elevation difference due to the curve is about 20 centimetres already.
But what do the other coordinates tell us? You can see there is around 1 to 2 meter difference in the values in both X and Y direction. And the geocentric coordinates have a bigger values than the flat earth ones. So that means that if something is modelled in the FS2004 coordinates, that it will appear slightly smaller in the FSX world. That’s why ground polygons with different reference points that fit exactly in FS2004, will have some gaps between them in FSX.
The little converter that I show the screenshots from will be part of the next development release of ModelConverterX by the way, you can find it in the Special Tools menu.
I have added support for a new format to ModelConverterX today, this new format is the AC3D format. It is commonly used by FlightGear for aircraft and scenery models. In the next development release you will find a reader and writer for the AC3D format. There are a number of limitations at the moment:
Shaded objects are not being read or written correctly. This is because the format does not directly store the normals of the polygons, but only if it is smooth shaded or not. I am still figure out how to interpret this correctly in ModelConverterX.
Only geometry is read or written, so no animations at this moment. I think FlightGear uses an extra XML file to specify animations, I will have a look at this later.
When exporting to AC3D I think the axes system used is wrong for FlightGear, so it could be the object is on its side if you import it now. I am still checking this.
Besides that I must say that I tested it with a number of FlightGear models, but I am sure that there are models that have different features and will not work directly. Please let me know if you have trouble, so that I can improve the tool.
I also haven’t tested the AC3D output in FlightGear itself, but OpenSceneGraph can visualize it. I guess I should head off and install FlightGear…