SAAFOPS Modeling Tutorial
Building the models
Each object (e.g. missile, APC, aircraft, building, pylon etc) in SAAFOPS is a 3D model generated in AutoCAD or 3D Studio. These models are then saved as .3ds files and imported with the LODEditor program (created by Fred ‘BaldEagle’).
LODEditor converts the 3ds file into a LOD file that is used within the simulation engine. Kasper is the resident LOD/modelling guru at SAAFOPS and he has written an excellent tutorial on what needs to me done to that “raw” LOD before it can be used within the simulation.
In essence it needs to be split again into its major components e.g. all the wing vertexes need to be “grouped” into one node, the tailplane etc. If you have moving components e.g. the the rudder, it needs to be split into its own node group, and then a DOF applied to it to allow it a degree of freedom movement (animation).
There are also switches to switch elements like wing contrails and strobe lights on/off. Once all that is done, each component is “texture mapped” onto a blank BMP texture which is then exported and used in a graphic program like Photoshop for creating the textures.
These textures are then imported again as dds files and are automatically applied to the texture mapped model. So from now on think of models as a LOD file.
Wait a minute….
It is not as easy as just building that Cheetah C you always wanted….
Each object in SAAFOPS requires multiple models if you want to do it correctly. You need a “high res” model for starters. This LOD is the model that you will see when you are viewing your Cheetah up closely.
You will also need to create lower resolution models (less polygons to tax the CPU). Each “LOD” has a “kick in” distance…. (see image below). These “distance modeling LODs” all are assigned to one Parent ID (NORMAL) – in this case #1746.
At least LOD1 and 2 requires texturing. This creates much less strain on the CPU and works well (distances above are hypothetical). You don’t need (and in real life wont be able to see) an aircrafts rudder moving at 2500 ft, so that model can be much less detailed and nor require any fancy DOFs)
You also need a “shadow model” which is a flat model of the aircrafts shape as seen from above used to create the shadow of the aircraft on the ground. This LOD is assigned to the REPAIRED Parent – in the example below to Parent #2136.
For realism you would also create a “damaged model” and destroyed (4 of these, left wing, right wing, both wings, fuselage“ models that are used to render destroyed models in the simulator. (e.g. a burnt out tank hulk). These require textures as well. Each receives its own Parent ID (35-38 in the example above).
Each object (entry) has a unique CT number which is basically a master index into the objects database. If you wanted to create 2 copies of the Cheetah D, you could have them share the same Parent ID which means they will use the same LOD files, but the CT numbers would be different.
But wait there is more…
An aircraft also needs stores, so you are going to have to create models (LOD1 and LOD2 levels) for each of the weapons it will carry (missiles, bombs etc) and the pylons or racks that is used to attach that weapon to the aircraft.. Textures need to be created for these as well.
If the aircraft is going to be flyable, a 3D cockpit model needs to be created as well. This is what you will see if you are in the virtual cockpit view.
That in essence concludes the 3D modeling requirements for each object added to the simulation engine. Remember the list is not restricted to aircraft alone, but covers all ground features and vehicles, like buildings, trees, SAM launchers, runways, taxi signs etc.