Scene Builder Wizard

In the latest development release you will find a new wizard, the Scene Builder Wizard. With this feature you can build one scene (object) from a set of FS library objects and their placement. With this information ModelConverterX will generate a combined scene that contains all these objects at the right positions. This might be useful to improve performance (when applied on a small scale) or when you want to convert an entire airport to another format or so. Once you have made the new object you can export or edit it like normal.

The video tutorial below demonstrates this new feature.

Reverse earth curve correction

The latest ModelConverterX development release contains a new feature that you can also do a reverse earth curve correction. In the previous versions you could already correct your model for the FSX curved earth, but with this new feature you can also undo such a correction again.

Besides that the Coordinate Converter tool can now calculate either latitude, longitude or flat earth XYZ or geocentric XYZ from any of the different formats. So this will be useful if you need to convert between them while developing.

The video tutorial below explains these new features as well.

scenProc feature roadmap

The end of 2016 is fast approaching, so it’s the time of the year to look back a bit on the last year and look ahead a bit to 2017 as well. For scenProc the last year has been very exiting, with a lot of ideas I had in my head coming to life. But I should also say directly that as users you haven’t seen much from this yet, because most of the new features are currently in a kind of alpha phase and are being tested in a project I’m involved with. In 2017 I hope that these new features will also start to move to the development release. Although I do not have a clear release plan for that in mind yet. But let me use this blog post to shed a bit of light on the possible future of scenProc, by describing some of the things I’m working on.

XML bridges

Currently scenProc can place XML scenery objects and effects for you. But I have been experimenting with placing XML bridges as well. The idea is that you use line vector data to generate such bridges automatically. The current results are quite interesting already, as you can see in the screenshot below.

Terrain vectors

A second area that I have been working on is the generation of terrain vector scenery using shp2vec. Since scenProc can already process geographical vector data the step to shp2vec is not that big. And using the filtering functionality of scenProc you can then select which data should be used for the different terrain vector types. Below is a screenshot of a test area in Luxembourg that has been populated with terrain vectors using scenProc.

Photoreal scenery

The main feature of scenProc has always been to generate autogen, but wouldn’t it be nice if you could generate the photoreal scenery as well? I have been working on exporting photoreal scenery using resample. Based on vector data scenProc can generate the water and blend masks for me and I have implemented basic colour corrections. I hope to do more colour correction stuff, for example for seasons or night versions. The image below is an example of a photo scenery made by scenProc (and autogen detected by scenProc).

Big area processing

The last area I’m working on is improvements for processing big areas. With Nantucket I did detection of vegetation, but wouldn’t it be cool to also detect the buildings? And Nantucket is “only” 120 km² in size. So how to scale things up if you want to process an area of let’s say 1500 times that size? I’m working on new features to run multiple scenProc instances in parallel to process such big areas and ideally I hope to distribute it over multiple machines as well. And of course the feature detection itself needs some optimisation to make it scale better. Below is a screenshot of the batch runner tool I’m working on for this parallel processing.

So as you can see there are a lot of interesting ideas that I have started working on and that will hopefully become reality in 2017. But I can’t promise when or in exactly which form the different features will end up in the development release. At least it shows in which direction I’m thinking.

iBlueYonder Nantucket released

A few years ago when I started to experiment with vegetation detection from imagery in scenProc I was looking for a test area with good imagery. I ended up picking the island of Nantucket, since it is a nicely sized island and for the US there is a lot of free source data to work with.

Later I found out that Bill Womack was also working on a scenery of the island, so my test autogen moved from just an experiment to something that would become part of an actual scenery. And combined with the great custom autogen textures Bill made the result is really fantastic.

Now Bill has released this scenery, so if you are looking for a nice VFR destination or just want to enjoy the scenery and the custom autogen check it out.

Support for more formats

Over the last year I have been putting most of my focus on new scenProc features, so ModelConverterX did receive less updates than usual. But now that the end of the year is approaching I do have some new features for ModelConverterX for you as well. Let’s say this is my Christmas gift to all ModelConverterX users. I have added support for a few more formats, you’ll find the details on the changes below. A big thanks to the Assimp project for this as well, as I found that library very useful.

COLLADA

The COLLADA format is not also supported for export. You can export model geometry and the basic material settings to the COLLADA format. Most of the sub textures, like bump maps, are also supported in the export. So this should make it easier to import models in other tools.

Import of the COLLADA format was already supported before, but I’m using the Assimp library for that now. So hopefully everything still works as you are used to. The advantage of this approach is that you should be able to import animations from COLLADA as well, but I didn’t find good test models of animated COLLADA files to test it thoroughly.

FBX

The AutoDesk FBX format is now supported for importing and exporting as well. The importing is done through the Assimp library again and it can import geometry, animations and most material settings. Exporting is done using the FBX ASCII format and it writes the geometry and basic material settings for the moment. I hope most tools support the ASCII version of FBX as well, although I noticed that Blender doesn’t.

3DS

For exporting to the 3DS format I am using the Assimp library now, this replaces the old 3DS exporter I made before. Hopefully this solves the bugs in hte old 3DS exporter. Sometimes objects were exported corrupt and could not be loaded into GMax. I hope by switching to Assimp that is fixed now.

Wavefront OBJ

Importing and exporting of Wavefront OBJ files is now also done through Assimp. These are not new features, but I moved it to the new library to cleanup my code a bit. It should work just as it did before.

I hope you like all these new features. If you encounter any issues or bugs, please let me know.

scenProc filter bug

I have fixed the scenProc filter bug that I wrote about a few weeks ago. Objects without an attribute were sometimes included in the results for double or integer attribute types. That behaviour has been fixed now.

While fixing it one new issue appeared though. The filter validation now doesn’t throw an error anymore when you try to compare a string to an integer. But I didn’t want to hold back the bug fix until I have been able to fix this issue. So the validation is slightly less good for now.

GUID selection context menu

In scenProc the code completion will help you to select the right GUIDs for your vegetation or buidlings. But if you are not sure what the name of the class is or if you want to add multiple guids for random placement, that’s not always the easiest way.

So I have now added a context menu to these GUID attributes and selecting it will give you a GUI like shown below where you can easily select the GUID you want from the list. Just check the checkbox and the GUID will be added to your script.

image2016-10-15-2200-33-990

Find and replace

I have added find and replace functionality to the scenProc GUI now. That should help you to find a certain text in your configuration file and also to make replacements more quickly. You’ll find those new functionalities in an extra toolbar that is shown right below the normal toolbar.

image2016-10-06-2037-15-316

Filtering features

Better ways to filter out features in scenProc that are overlapping with others or that are close together have been requested for a while already and I have now implemented a new step called FilterFeatures that adds these possibilities.

With this new step you can for example remove all point features of trees that are close to a round or remove buildings that have bounding boxes that are overlapping with other buildings. Please check the manual for the details and examples of how to use this new step.

Some of this filtering could be done before by using the AddAttributeIfInside step, for example to add an extra attribute when a feature was inside another feature and then filter them out based on this attribute. But the new step will make this kind of filtering a lot more efficient.

Understanding extrusion bridges

Lately I have been working with XML extrusion bridges for scenery and while doing so I noticed some weird artifacts. Even though I out the end points under the ground, they sometimes still float above it. And I also noticed that two bridges don’t always connect even though you specify the same position and altitude for the connecting point.

So I decided to dive a little deeper and see if I can understand what is going on. And after examining a lot of bridges I have come to the conclusion that the scenery engine adds a weird elevation offset to all bridges. And this offset is equal to the average height of all points of the bridge. So the taller your bridge is, the more the bridge is raised and thus also the more your end points will float.

The good news is now that I understand the logic behind the offset it is easy to compensate for it, to make sure you get the bridge you expect. But I still don’t understand why it was implemented like this. I mean when you type an altitude in the XML file that’s what you expect to get, right?