# 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 and 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 and Manufacturing Information (PMI)

Product and 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.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Exchange in your own language, or choose a sample question below to start a conversation:

What is HOOPS Exchange?
What are the latest release notes for HOOPS Exchange?
How do I start evaluating HOOPS Exchange?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...