glTF Reader

gl Transmission Format
File Extension glTF, GLB
Supported Versions Version 2.0 only
Platforms
Tessellation Supported
Boundary Representation (B-rep) Unsupported by format
Product Manufacturing Information (PMI) Unsupported by format

glTF (GL Transmission Format) is an open standard for efficient transmission of 3D scenes and models, storing meshes, materials, textures, and scene hierarchy for visualization and rendering.

When read by HOOPS Exchange, glTF files provide access to tessellated 3D data and associated visualization information, including materials and textures as defined in the file. CAD-specific data such as B-rep, PMI, and exact model definitions are unsupported by the format.

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

  • .gltf
  • .glb

Note

Experimentally, Draco compressed glTF files are supported.

How to Import From glTF

Reading glTF files follows the same pattern as other formats: configure load parameters, then call the standard load function.

To load a glTF file, use A3DAsmModelFileLoadFromFile(). The A3DParamsLoadData structure is used to customize the loading behavior:

A3DAsmModelFile* pModelFile = 0;

A3DRWParamsLoadData sReadParam = A3D_MAKE_DATA(A3DRWParamsLoadData);
sReadParam.m_sGeneral.m_bReadSolids = true;

// ... set other A3DRWParamsLoadData fields as necessary

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

See Simple Load and Export for more about loading model files.

Boundary Representation (B-rep)

Boundary Representation is unsupported by glTF.

Product Manufacturing Information (PMI)

Product Manufacturing Information (PMI) is unsupported by glTF.

The detailed description of the material data format is included in the documentation of the A3DGraphMaterialData structure.

For more information about accessing textures and attributes, please read the documentation for the A3DGlobalData, A3DGraphMaterialData, A3DGraphTextureApplicationData and A3DMiscAttributeData structures.

Assembly

This concept is unsupported by glTF.

Views

Views are unsupported by glTF.

Physically-Based Rendering Material

As of version 2019, HOOPS Exchange supports physically based rendering (PBR) materials with A3DGraphMaterialData structure. PBR related information are read from glTF formats.

Miscellaneous

Supported

  • Version 2.0 files only (tinygltf limitation; only “asset” data is correctly parsed from 1.0 files)
  • Vertex position, normal, color, texture coordinate sets 0 and 1
  • Triangles
  • Full texture support and material data: normal, occlusion, emissive
  • Physically Based Rendering (PBR) textures and constants: base color, metallness, roughness
  • Texture file formats: JPEG, PNG, BMP, GIF (handled by tinygltf)
  • Cameras

Unsupported

  • Version 1.0 files
  • Vertex tangents
  • Animations
  • Skins
  • Extensions
  • Shaders
  • Sparse accessors (currently not supported by tinygltf)
  • Byte-swapping for Big-Endian platforms

Limitations

  • Compressed .glb files are currently unsupported.
  • Reading glTF is supported only on Windows, Linux, and MacOS platforms.