Posts categorized “Tools”.

Drawcall minimizer

Today I have been working on the drawcall minimizer and it is going quite well. For the diffuse textures I can now reduce the amount of textures by combining them onto one texture sheet, after which the texture mapping is updated automatically on the model. The biggest problem with this approach is that other textures (like night textures) are not updated yet at the moment. And also I would like to add the functionality to put the colours into the texture sheet as well to minimize the amount of drawcalls further.

But if I can’t fix those issues quickly, I will release the current functionality soon so that you can also use it. While working on it, I have also speeded up the loading of texture files  a bit, this should be mainly noticeable in the material editor.

Jetlag almost gone

We are back home for a few days now, after enjoying a two week vacation in California. We had a lot of fun there and now that the jetlag is almost gone, it is time to spend some time on my FS tools again.

Initially I plan to focus on ModelConverterX a bit more. I want to finish the function to minimize drawcalls and will try to fix some bugs in the COLLADA reader. Since my posts about using Sketchup it seems many people give it a try, and they find many new bugs as well.

After that I want to focus more on gPoly again. I got some great new ideas for this tool and I am looking forword to continue coding on it. My first focus will be on the functionality to actually export the polygons you draw to FS, since without that the tool does not have that much usage.

Minimize drawcall functionality

One of the challenges when converting old API macros or COLLADA objects is often how to make them  framerate friendly. It is not uncommon for such objects to use many small texture files. If you for example load an object from the Google 3D warehouse, don’t be surprised to find it uses 40 different texture files.

For some time it was on my ModelConverterX wishlist already to add some functionality that will merge all these textures into one texture sheet and automatically adjust the mapping on your object as well. Today I started coding on this.

I am certainly not finished yet, but the first results are very encouraging already. The image on the right shows my test application, where I loaded a bunch of textures from a KMZ file. All these pieces have been combined into one big texture sheet.

What I still have to do is make the code to update the texture mapping on the object. And of course to make a user interface to access this drawcall minimizer functionality. But that should not be the hardest part.

So hopefully later this weekend I can have the first beta version ready. But now I am first going to enjoy the snow outside and have a walk.

Mass Texture Editor

To assist with the conversion of textures while converting objects for us in FS, I have added a new tool to ModelconverterX. It is called the Mass Texture Editor tool and it will help you to rename, resize and convert to another format all the textures of an object at once. So this will be useful for example when you are converting a COLLADA file, since these often use JPG textures in sizes that are not supported by FS.

I have made a little preview video to show how the new tool works. I hope you find this functionality useful, if you encounter bugs or have other suggestions please post them in the forum.

Some of the things I have in my mind to add next are functionality to minimize the amount of drawcalls and a wizard that will guide you easily through the import, texture edit and export process of an object.

gPoly (no) progress report

Just a quick note that the gPoly development has been slow recently. About two weeks ago I worked a bit on the texture mapping on the polygons, but since then I have been kept busy with other things. Mainly work, but on the other hand I have also been working on the ModelConverterX tool to improve the COLLADA conversion so that SketchUp can be used as a modelling tool. At the moment that has a slightly higher priority, but after that I will return to the gPoly development again.

Modelling for FSX using Sketchup

One of the topics that is discussed often lately on the FSDeveloper forums is using Sketchup to model for FSX. The good news for those of you who think that the learning curve of GMax is a bit too steep, is that you can use Sketchup as well if you want to model some scenery objects for FSX. I should directly note that if you plan to make an aircraft than Sketchup will not be of much use to you, since you will still need GMax to do all the animations and other advanced features that an aircraft needs. But if you want to model some scenery objects (without animations), then using Sketchup is certainly an option for you.

In this blog post I want to discuss some issues that you need to be aware of when modelling using Sketchup, as there are still some open edges. Later I plan to write a tutorial about this as well, but I need to do some more research on a few topics.

How to export to FS?

You can not export directly from Sketchup to the MDL format that is used in FSX for objects. But in Sketchup 7.1 you can export directly to the COLLADA DAE format (in earlier versions this was not possible in the free version, only in the Pro version). Once you have the COLLADA file you can use my ModelConverterX tool to convert the COLLADA file to a MDL object for FS. This MDL object can then be put into a library and positioned like any other MDL object.

But what about the textures?

Using the ModelConverterX it is indeed easy to convert the geometry of your object, but how about the textures? Most of the texture you applied in Sketchup will be exported a JPG files and that is not a format that FS can read. So you will have to convert these manually to the DDS or extended BMP format as used by FS. Also be aware that the textures as exported by Sketchup not always have sizes that are a power of two (you know 256×256 or 512×1024 or …) so you might have to resize the texture as well before you can use it in FS. I am working on a ModelConverterX feature to assist you in these texture conversions.

Watch out with the drawcalls

With Sketchup it is very easy to create your geometry and it also comes with a library full of materials, for example bricks or roof textures, that you can just drop onto your object. But wait a second, that means you will end up with a material that uses many textures (and maybe also some colours) and that will not give you best performance in FS. Each of these will add an additional drawcall to your object. So I would not advice that you model like that for FS.

But how should you model then? It is best to try to use only one texture sheet for all parts of your object. So don’t use these materials and do not apply a colour to your polygons. Try to use the same material on the entire object. I know it will cost you a little more time to map the material correctly, but it will pay you back in a better performance within FS.

Also be careful not to use the “make unique texture” option in Sketchup, as that will cut your texture into smaller pieces and then you still end up with multiple textures (even if they came from the same texture sheet).

Checklist

So sum up all these items and place them in a checklist you would get the following lists of items that you need to do when you want to use Sketchup to model for Flight Simulator:

  1. Create your object in Sketchup. Be aware of the performance implications when working with materials, so try to use one texture sheet for the entire object if possible.
  2. Export your object from Sketchup to the COLLADA DAE format.
  3. Import the DAE file in ModelConverterX and export it again as FSX MDL file.
  4. Convert the textures that Sketchup exported to a format that FSX can read (DDS is preferred). Be aware that you might have to resize them so that the sizes are a power of two.
  5. After that you can use the MDL file and the textures like any object for FSX, so you can put it in an object library and place it with your favourite object placement tool.

And most of all, have fun! In the end you should notice that it is a lot of fun to make your own objects for FS and if you found the learning curve of GMax to steep, then Sketchup might be more fun for you to use.

Texture conversions

In the last days there has been a lot of discussion on the FSDeveloper forum about converting COLLADA objects for use in FSX. One of the issues the users are facing is that many COLLADA models use textures in formats that FSX can not read, for example JPG files. So there is clearly a need to address this during the conversion.

I have not finished it, but I am working on adding support for texture conversions to ModelConverterX. In the next development release you will find a texture converter tool in the special tools menu. Although I made it more as a test tool to see if saving textures is working, I think it can also have practical use when converting your models. For example when you model still uses R8 textures that you want to convert to BMP or DDS. I should say directly that saving to DDS or extended BMP formats is not yet working, but I hope to have that feature very soon as well. So below you see a screenshot of the converter with a texture loaded.

Using the radio buttons you can select which channel you want to see. Another interesting feature, especially if your model using the BitmapMode command to determine which colour should be transparent, is that you can set the alpha channel based on a colour. So in this case if I would select black as the transparent colour you would get the alpha channel as shown below.

As I said, I hope to add support for DDS and extended BMP textures soon, since these are the primary formats used by FS. After that I am also planning to add another tool to ModelConverterX that allows you to easily rename, convert or resize multiple textures at once. Because this texture converter tool I added now is not really of assistance when you have a COLLADA model with a few dozen of textures. I’ll keep you informed about the progress on these other features I have in mind.

gPoly status update #6

Today I have been making some progress on gPoly again, so time for another status update. The first part I worked on is the user interface, especially the texture library that contains the texture you can use on your polygons. And also other improvements like the interface used to define new projects.

But most of the time I spend on functionality to import shapefiles. Initially I had not planned this for the first version, but since I had some accurate vector data and imagery of the same airport, this would allow me to verify that the imagery is positioned correctly. As you can see on the screenshot below I think it is quite accurate, since the markings line up very well. So I am happy with that and can move on to some other features tomorrow.

ModelConverterX and LODs

It’s a little bit ironic, after all the effort I put in the LOD Creator functionality of ModelConverterX. But today I found out that the LODs were not really working in FSX SP2 when you exported the FSX MDL files. This is because of the drawcall batching functionality that I wrote about in the previous post. There is a solution for this that breaks the drawcall batching.

So I have now added a new option in ModelConverterX that allows you to specify if you prefer the drawcall batching or working LODs. By default the LODs will be working. If the object has only one level of detail the setting has no influence, in that case the drawcall batching will always work. If the object has animations the setting also has no influence, since these prevent the drawcall batching in any case (and thus the LODs will work).

This fix will be available in the development release of tomorrow. So enjoy your LODs even more from now on!

ModelConverterX tutorial on Wiki

The ModelConverterX tutorial I gave this evening on the FSDeveloper LiveStream channel, has also been uploaded to the Wiki now. So on both of these places you can now review this tutorial.

Unfortunately I had a few bandwidth problems while recording the tutorial, so I had to restart two times. Sorry for the inconvenience for those who were following the tutorial live. Luckily it seemed there were not so many people watching live. When you watch the tutorial on the Wiki you won’t notice these trouble of course. Another comment I got from Nick halfway through is that the sound volume was maybe a little bit low, I will try to fix that for the next tutorial on Friday, when I will be talking about performance related issues (drawcalls, texture vertices, DXT compression).