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.

San Francisco here we come!

Just a quite note, at the moment we are packing our bags and tomorrow we are flying to San Francisco for a two week vacation. So that means no computer, no FSDeveloper, no email and no tool updates. I am looking forward to this break and hope to come back with many new ideas for tools like ModelConverterX and gPoly as well. So see you all in two weeks again.

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.

openVFR

If you are looking to add more details to your FSX, have a look at the interesting project openVFR. It uses OpenStreetMap data and it really makes the scenery look a lot more realistic. With a bit of luck you can find your own street. I think this kind of scenery is a great alternative to photo scenery, especially when you are short of harddisk space. So have a look…

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.

Free?

A few weeks ago I read the book Free by Chris Anderson. In this book it is described how many companies (mostly on the web) nowadays can make money using free products. If I try to summarize it in my own words, the author is saying that since the cost of distribution of digital content is approaching zero, the price of such products seems to do the same. And therefore people have to look for other alternatives to earn their money.

An example given is that many artists earn less from selling their records, but earn more from their concerts and merchandising. Or the so called freemium model where there is a free and a paid version, where the paid version has more functionality and from the earnings of that the free version is kept free. Or another example is free things paid by advertisement.

I am not sure if I completely agree with everything written in the book, but it is a nice mind experiment to see how this could apply to the world of Flight Simulation. So let’s give it a try…

Since addon products for FS are in general also digital content, according to this book their price should also develop in the direction of zero. But I am not sure if the alternatives mentioned in the book would work that well for FS addons. Using advertisement of something like that to generate the revenues is not something that would work I guess. Would it work to have a free and a paid version of addons? Maybe, but which features should be in the paid version to convince users to actually pay for it? Would it work to have a basic version of a scenery and then if you wanted things like animated gates you would have to pay? Or get the simple version of an aircraft for free and pay for the virtual cockpit? I am not so sure about this and would such a schema actually attract more customers than addons get nowadays?

Of course we have the difference between freeware and payware in the world of FS addons for a long time already. Where for payware you can in general expect a better quality and better support. Although there are also freeware projects that deliver top quality of course. But I can’t imagine more products being offered for free, simply because the amount of time needed to create them needs to be compensated somehow.

So while I am dreaming about how things could work, let me consider another model. Would it work if the Flight Simulator itself was offered for free and the revenues would be generated by the users who want extra functionality? So everybody can get the basic version, with some aircraft and a basic scenery of the world for free. But if you want better aircraft or scenery you can buy these. Or maybe you have to pay a monthly fee to use the ATC services? The advantage of a free basic version would be that you can reach a bigger group of end users and that might grow the total FS community. But I am not sure if additional paid content could pay for the development of such a base version. Especially since traditionally there are many small companies making such addons.

So I guess maybe the way the FS world works today is not that bad, where you have a product that has been designed to allow a community to extend it. And both freeware and payware developers do so. I guess the future will tell if a successor for MSFS will use a similar approach or not. As long as it is an open product that can be extended most of the community will be happy with it I guess…

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.