123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8" />
- <base href="../../../" />
- <script src="page.js"></script>
- <link type="text/css" rel="stylesheet" href="page.css" />
- </head>
- <body>
- <h1>[name]</h1>
- <p class="desc">
- An exporter for `glTF` 2.0.
- <br /><br />
- [link:https://www.khronos.org/gltf glTF] (GL Transmission Format) is an
- [link:https://github.com/KhronosGroup/glTF/tree/master/specification/2.0 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.
- </p>
- <h2>Import</h2>
- <p>
- [name] is an add-on, and must be imported explicitly.
- See [link:#manual/introduction/Installation Installation / Addons].
- </p>
- <code>
- import { GLTFExporter } from 'three/addons/exporters/GLTFExporter.js';
- </code>
- <h2>Extensions</h2>
- <p>
- GLTFExporter supports the following
- [link:https://github.com/KhronosGroup/glTF/tree/master/extensions/ glTF 2.0 extensions]:
- </p>
- <ul>
- <li>KHR_lights_punctual</li>
- <li>KHR_materials_clearcoat</li>
- <li>KHR_materials_dispersion</li>
- <li>KHR_materials_emissive_strength</li>
- <li>KHR_materials_ior</li>
- <li>KHR_materials_iridescence</li>
- <li>KHR_materials_specular</li>
- <li>KHR_materials_sheen</li>
- <li>KHR_materials_transmission</li>
- <li>KHR_materials_unlit</li>
- <li>KHR_materials_volume</li>
- <li>KHR_mesh_quantization</li>
- <li>KHR_texture_transform</li>
- </ul>
- <p>
- The following glTF 2.0 extension is supported by an external user plugin
- </p>
- <ul>
- <li>[link:https://github.com/takahirox/three-gltf-extensions KHR_materials_variants]</li>
- </ul>
- <h2>Code Example</h2>
- <code>
- // 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
- );
- </code>
- <h2>Examples</h2>
- <p>
- [example:misc_exporter_gltf]
- </p>
- <h2>Constructor</h2>
- <h3>[name]()</h3>
- <p>
- </p>
- <p>
- Creates a new [name].
- </p>
- <h2>Methods</h2>
- <h3>[method:undefined parse]( [param:Object3D input], [param:Function onCompleted], [param:Function onError], [param:Object options] )</h3>
- <p>
- [page:Object input] — Scenes or objects to export. Valid options:<br />
- <ul>
- <li>
- Export scenes
- <code>
- exporter.parse( scene1, ... )
- exporter.parse( [ scene1, scene2 ], ... )
- </code>
- </li>
- <li>
- Export objects (It will create a new Scene to hold all the objects)
- <code>
- exporter.parse( object1, ... )
- exporter.parse( [ object1, object2 ], ... )
- </code>
- </li>
- <li>
- Mix scenes and objects (It will export the scenes as usual but it will create a new scene to hold all the single objects).
- <code>
- exporter.parse( [ scene1, object1, object2, scene2 ], ... )
- </code>
- </li>
- </ul>
- [page:Function onCompleted] — Will be called when the export completes. The argument will be the generated glTF JSON or binary ArrayBuffer.<br />
- [page:Function onError] — Will be called if there are any errors during the gltf generation.<br />
- [page:Options options] — Export options<br />
- <ul>
- <li>`trs` - bool. Export position, rotation and scale instead of matrix per node. Default is false</li>
- <li>`onlyVisible` - bool. Export only visible objects. Default is true.</li>
- <li>`binary` - bool. Export in binary (.glb) format, returning an ArrayBuffer. Default is false.</li>
- <li>`maxTextureSize` - int. Restricts the image maximum size (both width and height) to the given value. Default is Infinity.</li>
- <li>`animations` - Array<[page:AnimationClip AnimationClip]>. List of animations to be included in the export.</li>
- <li>`includeCustomExtensions` - bool. Export custom glTF extensions defined on an object's `userData.gltfExtensions` property. Default is false.</li>
- </ul>
- </p>
- <p>
- Generates a .gltf (JSON) or .glb (binary) output from the input (Scenes or Objects)
- </p>
- <h3>[method:Promise parseAsync]( [param:Object3D input], [param:Object options] )</h3>
- <p>
- Generates a .gltf (JSON) or .glb (binary) output from the input (Scenes or Objects).
- </p>
- <p>
- This is just like the [page:.parse]() method, but instead of
- accepting callbacks it returns a promise that resolves with the
- result, and otherwise accepts the same options.
- </p>
- <h2>Source</h2>
- <p>
- [link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/exporters/GLTFExporter.js examples/jsm/exporters/GLTFExporter.js]
- </p>
- </body>
- </html>
|