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.