An exporter to compress geometry with the Draco library.
Draco is an open source library for compressing and decompressing 3D meshes and point clouds. Compressed geometry can be significantly smaller, at the cost of additional decoding time on the client device.
Standalone Draco files have a .drc extension, and contain vertex positions, normals, colors, and other attributes. Draco files do not contain materials, textures, animation, or node hierarchies – to use these features, embed Draco geometry inside of a glTF file. A normal glTF file can be converted to a Draco-compressed glTF file using glTF-Pipeline.
Import
DRACOExporter is an add-on, and must be imported explicitly. See Installation / Addons.
import { DRACOExporter } from 'three/addons/exporters/DRACOExporter.js';
Code Example
// Instantiate a exporter
const exporter = new DRACOExporter();
// Parse the input and generate the DRACO encoded output
const binaryData = exporter.parse( mesh, options );
Examples
Constructor
DRACOExporter()
Creates a new DRACOExporter.
Methods
.parse ( object : Mesh | object : Points, options : Object ) : Int8Array
object | object — Mesh or Points to encode.
options — Optional export options
- decodeSpeed – int. Indicates how to tune the encoder regarding decode speed (0 gives better speed but worst quality). Default is 5
- encodeSpeed – int. Indicates how to tune the encoder parameters (0 gives better speed but worst quality). Default is 5.
- encoderMethod – int. Either sequential (very little compression) or Edgebreaker. Edgebreaker traverses the triangles of the mesh in a deterministic, spiral-like way which provides most of the benefits of this data format. Default is DRACOExporter.MESH_EDGEBREAKER_ENCODING.
- quantization – Array of int. Indicates the precision of each type of data stored in the draco file in the order (POSITION, NORMAL, COLOR, TEX_COORD, GENERIC). Default is [ 16, 8, 8, 8, 8 ]
- exportUvs – bool. Default is true.
- exportNormals – bool. Default is true.
- exportColor – bool. Default is false.