“The Autodesk® FBX® format is a free platform-independent 3D authoring and interchange format. Available for Windows, OSX, iOS and Linux operating systems.”
Clear as mud? Read on…
At Numfum, we need to take the models and animations we create in 3ds Max, and re-produce them on multiple hardware platforms. This means FBX is a logical choice for us, and is something we’ll expand upon in a future blog, when we take a ‘deep dive’ into the belly of the format.
But for now we’ll take a look at what’s possible using the FBX format, and how we can use it to drive certain aspects of the NNT (Numfum Neue Technologie) 3D Engine.
Horses for Courses
It’s a safe bet that a high percentage of people using 3ds Max and/or the FBX format will be doing so as part of developing some form of entertainment product. But in our case, we’re developing a bespoke 3D engine for software that sits somewhere inbetween a fully interactive game and totally non-interactive FMV.*
Or, to put it another way… although we’re rendering everything in realtime, we generally have fixed paths through any scene we create. This means we can optimise for the lowest possible polygon count and the least costly lighting effects to get the best from our low-end target platforms.
We also have a requirement to render 2D user interface elements, and more crucially lots of on-screen text. To be clear, these additional aspects have nothing to do with the FBX format — we have our own in-house data stuctures for text and 2D. But it’s well worth mentioning, as it’s an additional consideration when computing available texture space and how many triangles we have left to to play with.
Cherry Picking
if you’re familiar with the following terms; meshes, animations, lights, cameras, camera switchers, textures, materials and bones then that’s the kind of thing we’re looking for in our FBX files.
Some of these are easy to find, and some not so easy. And as mentioned earlier, we’ll cover all that ‘fun’ in a future in-depth blog.
Suffice to say, that we have developed a tool which scans an FBX file for the useful bits above, ignores the stuff we don’t want and then squishes this data down using heavy, CPU intensive compression.
The resultant file is something we can ship as part of a software package. A small, quickly de-compressed set of instruction for re-creating a 3D movie, played back by our engine. It will render exactly as it was designed in 3ds Max (or a few other 3D software packages) so long as the designer sticks to the theoretical limits of the engine.
Here’s a link to a real-time demo of our 3D engine playing back FBX data:
http://www.numfum.com/blog/190716/
An animated, self illuminated butterfly, moving along a path in a 3D scene
Source FBX files: butterfly-fbx.zip
Source Max files: butterfly-max.zip
The Right Tools
It’s quite possible to simply export an FBX format file and then process the data in a stand alone program. However, at Numfum we’ve made good used of the FBX SDK, which has enabled us to create our own plug-in for 3ds Max. This empowers our artists to export usable files directly from 3ds Max, without the need to refer to any external software or batch processes.
In Good Company
When it comes to choosing a good solution for 3D scene export and development, there are a few formats you can choose from; Alembic, PSK/PSA, COLLADA and of course FBX.
However, Numfum aren’t alone in embracing the FBX format. There are several 3D systems where FBX is a favoured format — some you may have already heard of; Unreal, Unity, CryEngine, PlayCanvas, REDEngine, Frostbite, Snowdrop to name a few…
*FMV (Full Motion Video) is a term generally used to describe
pre-rendered 3D or realtime 3D non-interactive content in games.