Microsoft DirectX Reader/Writer

FME can access Microsoft DirectX® Format (.x) files.

The DirectX format was originally developed as an open interchange format for DirectX 2.0 and was supported until Direct3D 9.0. It is now commonly used as an interchange format between different 3D modeling and rendering applications.

Microsoft DirectX Product and System Requirements

Format

Product

Operating System

Reader/Writer

FME Form

FME Flow

FME Flow Hosted

Windows 64-bit

Linux

Mac

Reader

Yes

Yes

No

Yes

No

No

Writer

Yes

Yes

No

Yes

No

No

Reader Overview

The DirectX reader produces FME features for geometry data in DirectX files.

The DirectX reader flattens all hierarchy and extracts all the geometry in a DirectX file, then presents the elements to FME for further processing. All DirectX elements will be combined to create one FME feature.

Writer Overview

The 3D model has a hierarchical structure of Nodes, which are elements of the model. For each node, there is a corresponding mesh, which contains the geometry of the object. Feature types become Nodes. Features become Meshes that may have geometries and attributes.

The DirectX writer produces an '.x' file for each FME feature type sent to the writer.  Surface, solid, and polygon geometries are converted into DirectX triangle mesh structures. Texture files are written to the same folder as the models and referenced by DirectX models using the texture name. Any old files in the output folder are overwritten by new files with the same name. If the output files cannot be written, the translation fails.

The DirectX Writer supports feature type fanout and will write a different DirectX model file for each feature type.

Note  The DirectX format is limited to 32-bit precision for its coordinates and, as a result, translations involving a greater level of precision (i.e., using world coordinates instead of local coordinates) may produce DirectX data where different coordinates are collapsed into a single coordinate. This issue can be resolved by offsetting the x,y,z coordinates such that the model's origin is moved to (0,0,0) or another point close to this, which has the effect of moving the model into a local coordinate system.