:orphan:

###########
glTF Writer
###########

.. rst-class:: format-title-block

+----------------------------------------------------------------------+
|                        **gl Transmission Format**                    |
+-----------------------------------------+----------------------------+
| **File Extension**                      | glTF, GLB                  |
+-----------------------------------------+----------------------------+
| **Supported Versions**                  | 2.0                        |
+-----------------------------------------+----------------------------+
| **Platforms**                           | |wy| |ly| |my| |an| |iy|   | 
+-----------------------------------------+----------------------------+
| **Tessellation**                        | |c_green|                  | 
+-----------------------------------------+----------------------------+
| **B-rep**                               | |c_grey| N/A               | 
+-----------------------------------------+----------------------------+
| **PMI**                                 | |c_grey| N/A               | 
+-----------------------------------------+----------------------------+
| **Assembly**                            | |c_grey| N/A               | 
+-----------------------------------------+----------------------------+
| **Views**                               | |c_grey| N/A               |
+-----------------------------------------+----------------------------+

The glTF (GL Transmission Format) file format was created by the Khronos Group in 2015. It is an open standard for 3D scenes and models, designed to be efficient and widely supported across platforms.

The file extensions that you can create when you export to glTF are

- `.gltf`
- `.glb`

HOOPS Exchange geometry access for glTF includes:

* **Tessellation:** Can be written by HOOPS Exchange for visualization.
* **B-rep:** This format does not support B-rep


Physically-Based Rendering Material
===================================

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

Miscellaneous
=============

.. rubric:: 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
- Wireframe

.. rubric:: Unsupported

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

Assembly
========

This concept is not supported by glTF.

B-rep
=====

This concept is not supported by glTF.

Views
=====

This concept is not supported by glTF.
