For those developers using 3DS Max to make their aircraft or scenery models there is good news. A common question on the FSDeveloper forum is which version of 3DS Max can I use together with the FSX gamepack? The bad news in that case is that it does not work with the latest versions and you can’t legally buy the old versions that do work. But now the good news, an updated SDK for Prepar3D has been released. This SDK includes the tools to export from the more recent versions of 3DS Max. Since the Prepar3D MDL format is the same as FSX, this SDK should also help FSX developers. So thanks to the Prepar3D team for this!
You’ve got an update!
I have added a new function to ModelConverterX, an notification when a newer development release is available. When a newer release is available you will get a notifcation message as shown in the image below. If you click on the balloon you will be taken to the ModelConverterX webpage where you can review the latest changes and download the new release. If you don’t want this function you can also disable it in the options of course.
There is only one catch to all this, you need to remember to get the latest version yourself to get these notifications in the future.
Ground Polygon Wizard change
I have made a few small changes to the Ground Polygon Wizard. These changes deal with the way you can filter out polygons from your object after loading. In the previous version there were two buttons for this. “Filter out non-ground polygons” would remove all polygons that were not on the ground, while “Lower polygons to ground level” would lower all horizontal polygons to the ground level.
In the new version these two buttons are gone. But instead of them you will find two checkboxes directly under the box where you select the file to load. This means that you now specify which filtering you want before you select the file to load. While loading the object the filtering will directly be done. The names of the two options have also changed a little bit.
The first is now called “Project flat polygons on ground”. This does almost the same as the lower ground polygon function before. The only difference is that you can now specify a tolerance for a normal that is still considered as flat. So that means that if you polygons are slightly tilted it will still work. Most of the time the default values should work fine. The second option still works the same and will remove all polygons that are not on the ground. Another difference is that the functions are performed in a fix order now. If you have the checkboxes selected first the polygons will be projected and then the non-ground ones will be filtered out.
I hope these changes make it a little easier to work with ground polygons in the wizard. And be careful with the default settings when you are loading a file that also contains buildings, the project option would project them onto the ground as well. In that case you would like to disable the option.
Better performance for line intersection calculations
Today I was “playing” a bit with a profiler on ModelConverterX. This gave some interesting insights in how often certain functions are called or how much time is spend in certain functions. One of the things I noticed was that while loading SCASM API macros the triangulation of the polygons took relatively a lot of time. So I decided to have a look at the code involved and found out that the calculations to determine if lines intersect were to blame for all this.
So I have rewritten this logic now and that seems indeed to have increased the speed of loading API macros quite a bit. On one of my test models it went from 1.3 to 0.5 seconds. So especially for big or complex files you can expect some increase. Some part are still not as fast as I would like, so I will continue to find places where I can improve the performance.
As a nice side effect of these changes, I have also noticed that the Ground Polygon Wizard works faster now, the slicing functionality uses the same code to do line intersections when using the boolean operations.
More preview functionality
After fixing some bugs that were reported last week, I spend most time today on adding more functionality to the 3D preview of ModelConverterX. So that means that from tomorrow there will be the following additional features:
Texture clamp is now displayed correctly in the preview. This option is not widely used, but it can be useful to put logos on buildings, as the SDK mentions. Below you see a screenshot with a clamped texture.
When the object uses a detail texture this is now displayed in the preview as well. The detail texture is blended through the normal diffuse texture and can be used to add additional details, like for example noise. In the material editor you can specify the detail map scale, so now that you can see it in the preview as well that will allow you to fine tune the correct scaling more quickly. I have done some comparison with how FSX renders the detail texture and I think the preview comes close to it. But let me know if you think there is still a difference, maybe I can tune the preview more. See the screenshot below for an example (not really a realistic one, since I just used another texture as detail map).
The last change I made to the preview is about the display of night textures. These could be displayed for some time already, but now I have also added support for the emmisive mode property of the FSX material. This means you can now see in the preview what the difference between additive, multiplyblend and blend is. See the screenshot of the default 737 cockpit as an example.
Blend maps are not yet supported by the preview, that is still on my wishlist, but I still have to figure out how easy these would be to implement.
YouTube channel
I know that the manual of ModelConverterX is lagging behind the development release a bit. This is actually on purpose, since I only update it when I make a new stable release. But I do realize that this means that many features are undocumented at the moment. Since reading manuals is not something every user does, I am trying a new approach now. I have opened a YouTube channel on which I will regularly post short videos to show how certain functions of ModelConverterX work.
So hopefully that will make it a little easier to use the tool. And on the plus side, it is also quite nice to make such little videos. Of course the manual will still get updated when I make a new stable release.
Crashboxes
I have added a new function to ModelConverterX, you can now also visualize the crashboxes of MDL objects. This can give a very interesting insight in how those crashboxes have been made by XtoMDL or MakeMDL when you exported the object. They do not always follow the shape of the object exactly. To turn on the display of the crash boxes, you need to press the icon with the wall on it (next to the icon that toggles the display of bounding boxes). Below is a screenshot that shows a church I made with the crashboxes enabled.
ObPlacer XML + FSX + web mapping services =
Added platform support
Sometimes a new feature is not that difficult to implement as you first think. For example adding support for platforms was on the ModelConverterX wishlist for a long time already. Yesterday I have started on it and now the new feature is done already. So from tomorrow you will find that the development release can handle platforms as well. This means you can:
- Read platforms from FS2004 and FSX MDL files
- Write platforms to FS2004 and FSX MDL files
- Edit platforms using the Attached Object Editor
- Preview them in the preview
Since I do not have FS2004 installed on my computer anymore, I have not been able to test all the FS2004 related functionality as much as I wanted. So please let me know if you find any issues in it. Since there is no manual yet for the new features of the development release, I will try to give some instructions on how to use them below.
Display of platforms
When you have loaded an object that has platforms in it, they can be displayed in the preview. This is toggled with the same button that is used to display other attached objects in the model. The platform will be shown as a semi-transparent polygon (red by default, yellow if you have the platform selected in the attached object editor). See the two screenshots below as illustration.
Editing and adding platforms
You can edit the platforms using the Attached Object Editor. You will not be able to change the actual shape of the polygons, but you can change their position or orientation (heading, pitch and roll).
You can also add new platforms in the editor. For those new platforms you can enter a length and width attribute to determine their size. That means they are always rectangular. Of course you can also specify the position and orientation. See the images below.
Auto platform tool
A last new feature is the Auto Platform tool. This is available from the Attached Object Editor as well. Below you see the form of this tool. This allows you to automatically create platforms from polygons that match certain criteria. There are two criteria you can select:
- The normal. You can create platforms from any polygon that is facing upwards. But with the Filter normal upwards setting you can determine how much upwards it must be pointing. A value of 1.0 means completely upwards (so a flat roof). A value of 0 would be a normal wall that is not pointing upwards. You can enter a value in between these two limits. This allows you to determine if you want to create the platform for a flat roof or also for the tiled roof elements.
- Material. If you enable the checkbox you can also filter on the material that is selected in the combobox. This means that platforms will only be made from polygons that have this material.
The image at the bottom shows how I have made platforms on the roof of this test object. They are shown in yellow in this image.
Platforms!
Maybe not the most exciting looking picture. But it shows the feature from the ModelConverterX wishlist that I have started working on. This feature is adding support for platforms. I have started with reading the platforms from FSX MDL files. What you see in the image indicated with the red lines are the triangles of the platform. I am still experimenting what is the best way to represent them in the preview. Also I will need to add support to write them back to the MDL files before this feature is really useful. So if will take a little while before this is available in the development release. But at least you know I am working on it now.