Prepar3D v4 visibility conditions for scenery?

This evening I have been testing Prepar3D v4 a bit more and I have especially looked at using visibility conditions in scenery MDL files. Before these were not supported at all for MDL files placed through BGL. We had to use SimObject for them, as tools like SODE do.

But with Prepar3D v4 things have changed a bit here, and I have been testing what that could mean. So what I did is add a simple visibility condition to part of an object. This the test code I used:

<PartInfo> 
  <Name>vis_december</Name>
  <Visibility>
    <Parameter>
      <Code>
      (E:ZULU MONTH OF YEAR, number) 12 == if{ 1 } els{ 0 }
      </Code>
    </Parameter>
  </Visibility>
</PartInfo>

It is just a simple condition to show the scenegraph node only when it is the 12th month of the year. And the good news is that these kind of conditions now work. So you can have part of your MDL only show at a certain time of the year. This can be very useful if you want to show snow only in the winter or so. As a proof here are two picture, one taken in September and the other in December.

  

At the moment I could only use the variables from the environment section, which would limit the kind of visibility conditions only to time related settings (day, month, year, etc). I tried to test with some other variables, but didn’t have success with that yet. So it might be that interesting variables like the weather are still not support for scenery (or I just did something wrong).

Prepar3D v4 MDL support

In my previous post about Prepar3D v4 support of my tools I mentioned that the MDL format didn’t seem to contain many changes. On further investigation it turned out that there are a number of changes and new sections in the MDL format. These are related to the following new functionalities:

  • Support for a second set of UV coordinates, including the material attributes to specify which texture uses which set.
  • New material attributes, mainly for the detail map and heatmap.
  • Support for material scripts.

The development release has been updated to be able to write all these new features as well. In the material editor you will find a Prepar3D v4 specific section with all attributes that are only for Prepar3D v4.

Given these changes, you will find the Prepar3D v4 MDL and Prepar3D v4 BGL as a specific export format in the save dialogue now. In the options you will also have to set the path to the Prepar3D v4 XtoMdl and Bglcomp. If your SDK is installed correctly these tools should be detected automatically by the way.

Prepar3D v4 support

I have just released a new build of my tools that supports Prepar3D v4 as well. Below it is listed what this means for the different tools.

ModelConverterX

As far as I know now the MDL and BGL format in Prepar3D v4 are the same as in Prepar3D v2, so there is no new file format you can export to. But ModelConverterX will automatically recognise the Prepar3D v4 SDK when installed. Also the Convert and Place Object Wizard has been extended to support Prepar3D v4 as output simulator.

scenProc

The autogen configuration files from Prepar3D v4 can be read and you can thus select this version of the simulator as the active version. Besides that the Prepar3D SDK will be recognised when searching for certain tools.

FXEditor

Prepar3D v4 is added as supported version, which means you can select it as the active simulator version so that the effect files will be read from that effects folder.

For the Autogen Configuration Merger tool I have posted a beta release to the forum today as well. Once that has been tested better I will officially release it.

All other tools didn’t seem to require changes at this moment, but if you have issue using them with Prepar3D v4 please let me know.

Two new simulators

I the last week one new simulator was released and another one was officially announced. In this blog post I want to discuss what the impact on my various tools will be.

The new simulator that was released is Flight Sim World from Dovetail. After installing the early access version I have come to the conclusion that the MDL and AGN formats are still the same as in FSX. So from that point of view I expect no big changes are needed in my tools to support this simulator as well. However at the moment it’s not clear yet if there will be an official SDK for this simulator. Given that the formats are the same as FSX, I guess we could use the Prepar3D 1.4 SDK, as people with only FSX Steam Edition also have to do. If an SDK is released later on I will check what needs to be done for the tools to support it.

The other new simulator that was announced is Prepar3D v4. The biggest change there is the move to 64 bit. I’m sure there will be an SDK, just as prior Prepar3D versions had. So once it is released I will make sure that my tools can detect and use that SDK as well. As far as I know now, the MDL and AGN file formats have no big changes compared to Prepar3D v3, so I don’t expect big changes are needed to the tools. But once it has been formally released I’ll double check that again.

One note, for both simulators I need to check if the Autogen Configuration Merger tool works well on it. I haven’t checked if the autogen configuration file have changed in FSW and if it has a exe.xml to run a tool on startup like FSX had. That’s something I still need to look into. For Prepar3D v4 I will also need to make sure it’s supported by ACM.

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.