Decompiling and compiling autogen

A few weeks ago I made a tool that can decompile AGN files and create a TXT file to show you which autogen is in there. I called this tool agn2txt. It is my plan to make a compiler as well for the reverse, so this would be called txt2agn. It can create an AGN file again from the TXT file with the information.

Making this tool was very useful for me to learn more about the AGN format. But I did not look at the SDK properly, since the FSX SDK also comes with a tool called AgnDump. It creates a XML file with all the information about your AGN file. So I think that instead of making a txt2agn, I might better make a xml2agn. What do you think about that?

scenProc beta available

A first beta version of the scenProc tool is available for testing now. It is part of the development release package of my tools. The tool is a command line tool to create scenery from data you import. At the moment it can create autogen files from GIS vector data. In the future other scenery processing will probably be added as well. On the FSDeveloper Wiki you can find the manual of the tool as well, it explains the options you can specify in the configuration file.

Let me know how you get along with processing your own data. If there are any suggestions, comments or bug, let me know so that I can improve the tool further. You can use the scenProc forum to discuss this tool.

Autogen from OSM (3)

Since my last blog post about the autogen I have mainly been working on adding autogen buildings as well. This went quite well, I can now add the generic autogen buidlings as well as the row houses from my tool. There are still some issue that some of the buildings don’t get the right shape, that’s because in the autogen you don’t use the total footprint. I need to derive a orientation and size from the footprint information. But once those few issues are out, I think I can make the tool available to others for testing as well. Let me know if you are interested.

In have made a video to demonstrate the workflow of making autogen from GIS vector data.

Autogen from OSM (2)

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…

Autogen from OSM

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.

agn2txt

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.

Importing into GMax

Today I was trying to import an object into GMax again. As usual I used ModelConverterX to make a 3DS file and then imported that one. But, also as usual, that meant a lot of trouble with the textures. Especially since the 3DS format can only store short DOS filenames, it can be quite some trouble to get everything imported correct.

I had heard of scripts to import Wavefront OBJ files before, so I decided to look around a bit. In the end I found this script. Using it, it became a lot easier to import my objects I have to say. There were only two things I had to figure out first (and I’ll share them with you).

 

  • To run the script go to the Utilities tab of the command panel. Press the MAXScript button there. Then run the ms file you downloaded with run script. After that you can select Wavefront OBJ Importer from the Utilities dropdown box. This will give you the GUI to load OBJ files.
  • When the texture files are not found (which usually means they need to be in the same folder as the OBJ file), they are removed from the material on import. So make sure the textures are there, since else you get a material with only the colour.

 

But for the rest this is a much easier way to get your object into GMax than using the 3DS file. I should have found this out earlier.

Level of detail for FS2004 models

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.

FSX AGN files

On the FSDeveloper Wiki we have a page describing the FSX autogen (AGN) file format. Today I have been experimenting with AGN files a bit, so I have added more information to this page. Polygonal buidlings, library objects and row houses are not also described. For the other sections I have added some extra explanation as well.

Why did I do this? I wanted to see if I can create AGN files based on shapefile footprints of buidlings. So understanding the AGN format was the first step in that process. I have now made a small tool that can decompile a AGN file into a text file. My next step will be to make a compiler to do the reverse step. The last step would then be to make a small tool to turn the shapefile information into such a text file for my compiler.

I am not sure if compiling and decompiling AGN files is useful to other developers. If you think it might be useful let me know.