A Comprehensive Guide to Data Types Storable in FBX Files
This article is a translated version of my original post on Qiita. Original (Japanese): https://qiita.com/segur/items/4daff7100f509a179661
Elements That Can Be Contained Within FBX Files
As a beginner learning about the structure of FBX files, I investigated the elements that can be set in an FBX scene, and here I note down my findings.
I've aimed to express things in a way that's easy to understand for beginners, so the explanations of terms might not be completely accurate. Please let me know if you spot any mistakes.
Referenced: Autodesk FBX 2017

Target Audience
This article is for those who can program but are not familiar with CG terminology.
FBX
FBX is a widely used file format in the CG industry. It can define the shape, texture, movements, etc., of objects within a 3D space.
FBX SDK
This tool allows you to read and write FBX files using programming languages. There are two versions: C++ and Python.
Scene
The content of an FBX file is organized in a hierarchical structure, much like HTML. The top layer is the Scene, equivalent to the <html> tag in HTML, with various Elements hanging beneath it.
Referenced: Autodesk FBX 2017 / FBX Scenes

The elements include the following types:
| Element | FBX SDK Class Name |
|---|---|
| Mesh | FbxMesh |
| LOD Group | FbxLodGroup |
| Camera | FbxCamera |
| Light | FbxLight |
| Gobo | FbxGobo |
| NURBS | FbxNurbs |
| Texture | FbxTexture |
| Material | FbxSurfaceMaterial |
| Constraint | FbxConstraint |
| Deformer | FbxDeformer |
| Global Settings | FbxGlobalSettings |
| Axis System | FbxAxisSystem |
| Node | FbxNode |
| Marker | FbxMarker |
| Line | FbxLine |
| Skeleton | FbxSkeleton |
| Animation Curve | FbxAnimCurve |
| Pose | FbxPose |
Mesh
A mesh is a collection of polygons. It represents the shape of an object as a combination of flat surfaces (polygons) rather than curved surfaces.
Referenced: Wikipedia / Polygon Mesh

LOD Group
LOD stands for Level of Detail, also known in Japanese as θ©³η΄°γ¬γγ« (detail level).
When you want distant objects to be displayed with a coarse mesh and closer objects with a finer mesh, you set the LOD.
Though the article is about Unity, this concept of LOD is well explained in this article!
Referenced: Reduce Load with LOD to Keep 60FPS in Unity

Camera
In the physical world we live in, we use cameras to shoot videos, which we then watch on rectangular displays like smartphones.
Similarly, in the 3D CG space, FBX includes a camera element to capture the scene.
When creating games in Unity, you might use Unity's Main Camera instead, but when crafting 3D animations in tools like Blender or Maya, you store the camera's movement within the FBX file.
Referenced: Unity Documentation / Physical Camera

Light
Light refers to illumination. Without it, the space would remain in darkness. There are multiple types, such as sunlight and spotlights.
Referenced: Unity / FBX Exporter / Prefabs

Gobo
Gobo refers to images attached to spotlights which can create shadow-like effects.
Referenced: MOTIONBUILDER / Attach a Gobo to a Spot Light

NURBS
NURBS (Non-Uniform Rational B-Splines) are a type of curved surface. They represent the shape of objects with surfaces rather than polygons.
Referenced: Wikipedia / NURBS

NURBS can depict smoother shapes than meshes (polygons), but they require more calculations, making them difficult for real-time rendering in games.
Moreover, polygons can form complex shapes by combining triangles, quadrilaterals, etc., but NURBS require control points to be arranged in a grid (like a Go board), limiting the range of shapes they can express.
Thus, using NURBS to model living beings like humans, animals, and plants is challenging, and they're not often used in films. However, because NURBS allow precise control over curvature, they are frequently used for accurately defining shapes for cars, ships, and similar items.
Texture
A texture is an image affixed to a mesh to represent an object's pattern. If the mesh is the globe, the texture is the world map.
There's also data defining how the texture is affixed to the mesh, called a UV map.
Referenced: SECOND LIFE MARKETPLACE / Maruti Textures # Texture - Full Perm

Material
Material refers to the texture of a surface, including its color, reflectivity, transparency, etc.
Referenced: Adjust Materials for Metal and Plastic in MAYA Arnold

Constraint
Constraints restrict the movement of objects, effectively "binding" them. For instance, if you constrain a ball to a hand, it moves with the hand. Removing the constraint lets the ball fall from the hand.
Referenced: Maya / Example of an Aim Constraint

Deformer
A deformer moves a mesh (vertices) using control points and is akin to Photoshop's warp feature. Skeleton animation (skinning), where the mesh deforms with bone movement, is one type of deformer.
Referenced: Maya / Create a Lattice Deformer

Global Settings
Global Settings refer to configurations affecting the entire scene. Some call these metadata or headers.
Axis System
The axis system determines the direction of the coordinate axes, with two types: right-handed and left-handed.
- Right-handed: x-axis points east, z-axis points north, y-axis points upward.
- Left-handed: x-axis points east, z-axis points south, y-axis points upward.
Whether to use the right or left hand is determined by imagining the x-axis as a thumb, the y-axis as an index finger, and the z-axis as a middle finger.
Referenced: stack overflow / OpenCV triangulatePoints handedness

Node
In FBX, a node encapsulates an object's position, rotation, and size, corresponding to a Transform in Unity.
All nodes have parent-child relationships, such as shoulder β elbow β wrist.
The position, rotation, and size of nodes are influenced by their parents. For instance, if the shoulder moves 1m forward, the wrist also moves 1m forward.
Referenced: Autodesk FBX 2017 / FBX Nodes

Marker
Markers are used as motion capture reference points, applied to the skin. They help calculate the position of joints.
Referenced: Recommended marker set for full body capture

Line
A line is a straight pathway utilized, for example, to guide an object's movement along it.
Skeleton
A skeleton is a human-like framework composed of bones and joints. While it suggests a "biological" concept, it is more mechanical in nature. For instance, to simulate hair movement, you could add bones for the bangs.
The expression skeleton animation describes the animation of human motion.
Referenced: STYLY MAGAZINE / Autodesk MayaβSkeleton Setup

Animation Curve
Animation curves are data sets defining an object's movement. In skeleton animation, they adjust the timeline for the joint rotation direction.
Referenced: Unity Documentation / Using Animation Curves

Pose
A pose refers to a posture and can be understood as a non-changing animation.
Referenced: DIGITAL FRONTIER / Character Setup for MotionBuilder

In Conclusion
This article was informed by the following resources: