Modelling
Contents
Modelling basics
The community currently uses a wide range of modelling programs, from Blender to Lightwave to 3D Studio Max and others. Converters to the .POF format, as used by Freespace 2 is available via a plug in for 3D Studio Max or via the Pof Construction Suite program for .cob (Truespace) files. Any models to be made need to be converted to one of these two formats.
Limits and Guidelines for Model Making
SCP Team Recommendations
The new HT&L feature of Freespace 2 SCP has allowed a vast increase in the number of polygons that can be displayed at any one time, however, in order to keep gameplay smooth, the SCP team recommends the following rules when making models for use in Freespace 2.
Textures :-
1 : Use as few textures per model as is possible, optimization is the key, for fighters and bombers you should only need a single 512 x 512 map for the model. Capital ships can use more textures, but the less textures and the less memory they take up, the better.
2 : Unless it is absolutely vital, use the .DDS format for storing your images. These format files are compressed and are automatically decompressed by your video hardware, so they take up far less memory, thus improving performance. Freespace 2 also supports .TGA format files, but these should only be used where .DDS files are causing noticeable compression errors on your texture (this can happen most noticeably with semi-transparent textures.
3 : For highly detailed ships, it is better, from a memory point of view, to use one large texture than several smaller ones.
4 : ALWAYS use texture sizes that are a power of 2, i.e. 256, 512, 1024 or, at most, 2048. You can have different ratios, such as 512x256, but always use these sizes.
Models :-
Remember that any Level of Detail models are going to be stored in memory, so use them sensibly. With the new HT&L optimizations, I tend to use 3 main levels of detail on my ships, full detail, medium detail and low-detail. Remember that Freespace SCP now uses Mipmap technology, so you no longer need to create LOD’s for the textures, an old requirement of Freespace 2 modding. Whilst polygon count does not have as dramatic effect on performance as texture size does, it is, as always, best to optimize where possible.
Texture naming conventions
Whilst the textures on your models can be called anything, there are certain naming conventions in creating effects textures such as glow-maps or specularity, basically the naming convention works as follows.
TextureName.xxx – This is the colour map for the material. It should be mapped out to the models UV Map. This can use an alpha map for transparency. TextureName-glow.xxx – This is the glow map for the model. It simulates the effect of ‘portholes’ or other glowing part of the ship. Using the same UV Map, and a black background, make any flat lighting effects you want on the ship on this texture. These are different from Glow-points, which are points on the model and are covered later. TextureName-shine.xxx – This is the Specular map of the model, once again using the UV’s for the model, colour in all the parts of the surface which are metallic, using whatever colour you want the shininess to be. The brighter the colour, the shinier it will be. NOTE: Shine maps can also have an alpha map. This alpha map is used to define the level of ‘reflection’ when environment mapping is operating.
Sub-Objects
The first thing that needs to be understood about Freespace models is the hierarchy they need to be placed in to make sure that conversion is a success. Each Freespace model is made up of several sub models (which can also use more than one material each) or groups. How these groups are arranged will directly affect how the final model works in-game. Don’t panic, it’s not as scary as it sounds.
The most important parts of your ship you need to make sure are at least one individual sub-onjects are :-
Main Hull | The main 'Body' of the ship, will only explode when the ship is destroyed. |
Turrets | Any static or rotating turrets, rotating turrets need 2 sub-models. Different sub-object for each turret, e.g. Turret01, Turret02 etc. In the case of rotating turrets, I use Turret01-base and Turret01-arm etc. |
Subsystems | Destroyable sub-objects or any other eye-candy. These have the widest range of uses and feature in more advanced features. Different sub-object for each sub-system e.g. Radar01, Reactor01 etc. |
Debris | The wreckage of the ship released after it is destroyed. Different sub-object for each item of Debris, e.g. Debris01, Debris02 etc. |
LODS | The Level Of Detail models for the main Hull and for so-desired Turrets and/or Subsystems. |