:orphan:

##########
FBX Reader
##########

.. rst-class:: format-title-block

+---------------------------------------------------------------------------------+
|                        **FBX**                                                  |
+-----------------------------------------+---------------------------------------+
| **File Extension**                      | FBX                                   |
+-----------------------------------------+---------------------------------------+
| **Supported Versions**                  | ASCII: from 7100 to 7500, Binary: All |
+-----------------------------------------+---------------------------------------+
| ***Platforms**                          | |wy| |ly| |my| |an| |iy|              |
+-----------------------------------------+---------------------------------------+
| **Tessellation**                        | |t_green| Supported                   | 
+-----------------------------------------+---------------------------------------+
| **B-rep**                               | |c_grey| N/A                          | 
+-----------------------------------------+---------------------------------------+
| **PMI**                                 | |c_grey| N/A                          | 
+-----------------------------------------+---------------------------------------+

The FBX Reader provides access to visualization data stored within a particular FBX file. 

A file does not need to have a particular extension to be read correctly by HOOPS Exchange. However, the file extensions of FBX files that you can expect to be loaded by HOOPS Exchange include:

* `.fbx`

How to Import From FBX 
======================

To load an FBX file, use :cpp:func:`A3DAsmModelFileLoadFromFile`.
The :cpp:struct:`A3DParamsLoadData` structure is used to customize the loading behavior:

.. code-block:: c

   A3DAsmModelFile* pModelFile = 0;

   A3DRWParamsLoadData sReadParam;
   A3D_INITIALIZE_DATA(A3DRWParamsLoadData, sReadParam);
   sReadParam.m_sGeneral.m_bReadSolids = true;

   // ... set other A3DRWParamsLoadData fields as necessary

   A3DAsmModelFileLoadFromFile("path/to/file.fbx", &sReadParam, &pModelFile);

See :doc:`/guide/basic_operations/load_model` for more about loading model files.

Geometry
========

FBX is a tessellation format. Subsequently, **only** tessellation is read from an FBX file.

Textures
========

Textures are fully supported when parsing FBX.

The detailed description of the material data format is included in the documentation of the :struct:`A3DGraphMaterialData` structure.
For more information about accessing textures and attributes, please read the documentation for the :struct:`A3DGlobalData`, :struct:`A3DGraphMaterialData`, :struct:`A3DGraphTextureApplicationData` and :struct:`A3DMiscAttributeData` structures.

Restrictions
============

Reading FBX is available on Windows, macOS, and Linux.

Reading FBX-DOM files is not supported.
