GLTFExporter

An exporter for glTF 2.0.

glTF (GL Transmission Format) is an open format specification for efficient delivery and loading of 3D content. Assets may be provided either in JSON (.gltf) or binary (.glb) format. External files store textures (.jpg, .png) and additional binary data (.bin). A glTF asset may deliver one or more scenes, including meshes, materials, textures, skins, skeletons, morph targets, animations, lights, and/or cameras.

Import

GLTFExporter is an add-on, and must be imported explicitly. See Installation / Addons.

import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';

Extensions

GLTFExporter supports the following glTF 2.0 extensions:

  • KHR_lights_punctual
  • KHR_materials_clearcoat
  • KHR_materials_dispersion
  • KHR_materials_emissive_strength
  • KHR_materials_ior
  • KHR_materials_iridescence
  • KHR_materials_specular
  • KHR_materials_sheen
  • KHR_materials_transmission
  • KHR_materials_unlit
  • KHR_materials_volume
  • KHR_mesh_quantization
  • KHR_texture_transform
  • EXT_materials_bump
  • EXT_mesh_gpu_instancing

The following glTF 2.0 extension is supported by an external user plugin

Code Example

// Instantiate a exporter

const exporter = new GLTFExporter();

// Parse the input and generate the glTF output

exporter.parse(

scene,

// called when the gltf has been generated

function ( gltf ) {

console.log( gltf );

downloadJSON( gltf );

},

// called when there is an error in the generation

function ( error ) {

console.log( 'An error happened' );

},

options

);

Examples

misc_exporter_gltf

Constructor

GLTFExporter()

Creates a new GLTFExporter.

Methods

.parse ( input : Object3D, onCompleted : Function, onError : Function, options : Object ) : undefined

input — Scenes or objects to export. Valid options:

  • Export scenes
  • exporter.parse( scene1, ... )
  • exporter.parse( [ scene1, scene2 ], ... )
  • Export objects (It will create a new Scene to hold all the objects)
  • exporter.parse( object1, ... )
  • exporter.parse( [ object1, object2 ], ... )
  • Mix scenes and objects (It will export the scenes as usual but it will create a new scene to hold all the single objects).
  • exporter.parse( [ scene1, object1, object2, scene2 ], ... )

onCompleted — Will be called when the export completes. The argument will be the generated glTF JSON or binary ArrayBuffer.

onError — Will be called if there are any errors during the gltf generation.

options — Export options

  • trs – bool. Export position, rotation and scale instead of matrix per node. Default is false
  • onlyVisible – bool. Export only visible objects. Default is true.
  • binary – bool. Export in binary (.glb) format, returning an ArrayBuffer. Default is false.
  • maxTextureSize – int. Restricts the image maximum size (both width and height) to the given value. Default is Infinity.
  • animations – Array<AnimationClip>. List of animations to be included in the export.
  • includeCustomExtensions – bool. Export custom glTF extensions defined on an object’s userData.gltfExtensions property. Default is false.

Generates a .gltf (JSON) or .glb (binary) output from the input (Scenes or Objects)

.parseAsync ( input : Object3D, options : Object ) : Promise

Generates a .gltf (JSON) or .glb (binary) output from the input (Scenes or Objects).

This is just like the .parse() method, but instead of accepting callbacks it returns a promise that resolves with the result, and otherwise accepts the same options.

Leave a comment

Your email address will not be published. Required fields are marked *