I sometimes get asked the question why I use Autodesk Inventor for 3d modelling rather than something which is more suitable for game design such as 3ds Max. The answer is simple. Precision.
The A320 cockpit I am modelling will be used in a professional PC based flight simulator. The program will support Virtual Reality once the resolution is high enough to read the instruments. In order to support VR, all dimensions must be correct.
If you have spent thousands of hours in the cockpit of an airplane, you will notice straight away if a panel or switch position or orientation is slightly off. On top of that, people have muscle memory. You don’t consciously think where to place your finger to push a button, it is done automatically, like typing on a keyboard. If a button is not exactly in the right position, you will miss it. This is assuming accurate hand and finger tracking is available for VR but it is only a matter of time before that becomes available at a consumer level.
In order for the dimensions of the 3d model to be correct, the data source must be correct. I measure everything down to the millimetre using a variety of tools.
Getting those through security each day is the subject of another blog post.
Because air time is limited (our longest sector is only two hours), I make a quick sketch of the item to be measured and note down the dimensions. The actual modelling is done back home.
Another way of doing this is with the use of a 3d scanner. The data a 3d scanner produces isn’t suitable for realtime rendering because of quality and quantity issues but it can be used to scan once and measure later. The scanned data can be used as a background reference for direct modeling also. Unfortunately a good 3d scanner costs north of $30k, which is beyond my budget. Photogrammetry tools such as Photoscan cannot be used because most surfaces in the cockpit don’t have much surface detail and are glossy, producing a noisy result.
But I digress. So why use Inventor instead of 3ds Max to do the modelling. Because 3ds Max or any other non-CAD modelling program, doesn’t support constraint based parametric design. The position of a button on a panel needs to be exact, not eyeballed. And if I change one feature of a button, all related features must be updated. You just can’t do that with a program which doesn’t support CAD specific features, or at least not efficiently without the use of high quality 3d scanned data as a reference.
On top of that, the workflow of Inventor (or any CAD program for that matter) is to create a sketch and use that to model the geometry. These sketches look exactly the same as the notes I make while measuring, so turning that into a 3d model is a breeze. Still a lot of work though.
There is one major drawback to using a CAD program for game design though. It doesn’t support UV coordinates, so you can’t do proper texturing. This means you have to do the UV mapping in a game/movie modelling program. But if you make a change in the source model and convert it to an FBX again, all UV information is lost. So you have to make sure the model is correct before you start to unwrap the UV coordinates. And if you do want to make a change to the model, you will have to do it on the imported model.
Another issue with using CAD for game design is that you cannot edit the vertex normals on the source model. So things like smoothing groups have to be done on the imported model.
One way to mitigate this workflow which basically renders your CAD source useless, is to only re-import the part of the model you want to change. You will still lose all UV and normal data, but at least the damage is contained. Inventor and Max work nicely together and all ipt files are imported as a single object. This is not good for realtime performance (unless you use DX12, Vulcan, etc), but it is great for fixing design errors.
Here is a screenshot of some work in progress.
The 3ds Max Inventor importer has a fantastic LOD feature where you can increase the amount of polygons of curved surfaces while flat surfaces always have the smallest amount of polygons possible.
One last note. At some point you want to merge all static individual objects into a single mesh. This reduces the amount of batches to render and is better for performance. But once you do that, you can’t use the CAD source model anymore to change the design. This is the very last step in the modelling process though, and as long as you keep the source of pre-merged UV mapped model, it shouldn’t be a problem.