From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

Blender FBX Importer - End User Documentation


Intro

This document documents the Blender FBX importer written during Google Summer of Code 2012.


Features

Blender's FBX importer currently (8/2012) supports:

  • Read files in FBX 2012 and 2013 format
  • Read both binary and text (ASCII) files
  • Read static (non-NURBS) geometry including vertex colors, multiple UV sets
  • Read and convert animations (spatial animations only)
  • Read complex materials and texture settings

Minor, but probably not less interesting, characteristics include:

  • Preserve FBX pivots and transformation offsets as closely as possible
  • Preserve names and identifiers

Armature import/export is also implemented, but too buggy to be taken for serious yet.

Interplay/Roundtrip with the FBX exporter

Even though the importer strives to produce scenes that will come out similar to the input when re-exported again using Blender's FBX export script, this is not perfect yet. The plan is to develop an improved FBX exporter in near future to further improve Blender's FBX roundtripping support.


User Interface

The FBX importer got its own menu item:

Fbx doc caption.png


And its configuration panel (shown on the left of the file browser) looks like this:

Fbx doc uishot2.png


Ambiguity between 'Import using Open Asset Import Library' and 'FBX'

The new FBX import uses the Open Asset Import Library (assimp) to do the actual loading internally. For this reason, some of its settings overlap with the menu item named "Import - Open Asset Import Library". The reason for keeping fbx distinct is that it offers some extra import options and also because it does some extra conversion steps. The assimp import menu item does consequently not accept fbx even though assimp would be capable of reading it.

Options

The importer currently offers the following settings:

  • FBX: Strict Mode - Only FBX 2012 and FBX 2013 are officially supported. Large portions of the importer are able to deal with older files as well, though. For this reason, older files are not categorically rejected, instead the importer will try to read as much as possible (which usually means older files will be imported correct enough for many use cases). Strict mode disables this lenient behaviour and enforces strict version checks which makes the importer more robust, a bit quicker and also more reliable. You can think of the semantics of strict mode like this: if a file fails to load in strict mode (even though it is in the right format), it is a bug in the importer. If a file does not load in non-strict mode, it is simply not supported :-)
  • FBX: Read all geometry layers - FBX files can have multiple geometry layers. Settings this option causes the importer to scan all geometry layers, though and collect and convert all vertex data channels (vertex colors, smoothing groups, UV coordinates, normals) found. On the contrary, not settings this option causes it to ignore all channels except the first. The official FBX specification notes that many applications will use only the first geometry layer and ignore the others.
  • FBX: Strip empty animations - Sometimes it can happen that animation curves are either empty or constant during their entire defined time range, in which case there is no need to keep them. Settings this option never changes the (visual) animation, only redundant information is dropped which makes the resulting scene faster and more compact. Note that this may cause trouble when interchanging data with other 3D applications.
  • FBX: Preserve Pivots - FBX files can specify very complicated transformation chains including distinct offsets and pivots for rotational and scaling components. Setting this option always preserves this information even if this involves inserting new dummy nodes into the scene hierarchy (such generated nodes use tagged names such as "anode_$AssimpFbx$_PreRotation"). On the contrary, if this option is turned off, the importer will merge the transformations into a single sequence of rotation, scaling and translation, causes complex pivot and offset settings to be lost. The final transformation will be identical in both cases, it is just a matter of how closely the imported data is preserved.
  • Import Logging - Setting this option redirects assimp's log into Blender's message panel. Assimp provides very detailed, albeit sometimes very technical log messages. Nevertheless it can be useful to check out the message if something went wrong during import, oftentimes the presence of warnings or errors in the import log will give hints about the issue that prevented importing. It is also important to include the log in any bug reports related to FBX.
  • Triangulate - By default, the importer does not triangulate the input, which means polygons in the input files will stay polygons in Blender. If this causes trouble, setting this option enforces triangulation long before the data touches Blender.
  • Scale to Fit - Not implemented yet
  • Maximum Extents - Not implemented yet
  • Import Lines - Setting this flag requests the importer to keep single, unconnected lines (i.e. lines not part of any closed polygon). In many cases, such primitives are artifacts (i.e. degenerate triangles produced during modelling) and should be removed.
  • Import Animations - Specifies whether the FBX importer will read and convert animations.
  • Import Armature - Specifies whether the FBX importer will read and convert armature info and vertex deform groups associated therewith. This means an armature modifier will be added to the Blender scene. Armature import is currently buggy and should not be used - yet
  • Import Cameras - Specifies whether the FBX importer will read and convert cameras.
  • Import Lights - Specifies whether the FBX importer will read and convert light sources.
  • Import Materials - Specifies whether the FBX importer will read and convert materials.