Description - glTF Draco Mesh Compression Extension =================================================== [Draco] is a library for compressing and decompressing 3D geometric [meshes] and [point clouds]. It is intended to improve the storage and transmission of 3D graphics. The [GL Transmission Format (glTF)](https://github.com/KhronosGroup/glTF) is an API-neutral runtime asset delivery format. glTF bridges the gap between 3D content creation tools and modern 3D applications by providing an efficient, extensible, interoperable format for the transmission and loading of 3D content. This package is a build for encoding/decoding [Draco mesh compression extension](https://github.com/KhronosGroup/glTF/pull/874) in glTF specification. It could be used to compress the meshes in glTF assets or to decode the buffer data that belongs to a Draco mesh compression extension. For more detail, please read the extension spec. TODO: Add glTF branch url. News ======= ### Version 1.2.5 release * On average 10% faster decoding * Improved Javascript metadata API * Bug fixes ### Version 1.2.4 release * Up to 20% faster decoding * Added support for integer attributes to our Javascript Encoder * Fixed issues with THREE.DracoLoader not releasing memory associated with the Draco module * OBJ decoder can now be used to parse pure point clouds * Added Unity plugins to support runtime loading and design-time importing of encoded Draco files ### Version 1.2.3 release * Fixed Visual Studio building issue ### Version 1.2.2 release The latest version of Draco brings a number of small bug fixes * Fixed issues when parsing ill-formatted .obj files ### Version 1.2.1 release The latest version of Draco brings a number of enhancements to reduce decoder size and various other fixes * Javascript and WebAssembly decoder size reduced by 35% * Added specialized Javascript and Webassembly decoders for GLTF (size reduction about 50% compared to the previous version) NPM Package =========== The code shows a simple example of using Draco encoder and decoder with Node.js. `draco_encoder_node.js` and `draco_decoder_node.js` are modified Javascript encoding/decoding files that are compatible with Node.js. `draco_nodejs_example.js` has the example code for usage. Here we use a Draco file as an example, but when it's used with glTF assets, the Draco file should be instead some buffer data contained in the binary data. How to run the code: (1) Install draco3dgltf package : ~~~~~ bash $ npm install draco3dgltf ~~~~~ (2) Run example code to test: ~~~~~ bash $ cp node_modules/draco3dgltf/draco_nodejs_example.js . $ cp node_modules/draco3dgltf/bunny.drc . $ node draco_nodejs_example.js ~~~~~ The code loads the [Bunny] model, it will first decode to a mesh and then encode it with different settings. glTF Extension ============== The above example shows how to decode compressed data from a binary file. To use with glTF assets. The decoder should be applied to the data of the `bufferView` that belongs to a Draco extension. Please see the spec for detailed instruction on loading/exporting Draco extension. References ========== [Draco]: https://github.com/google/draco [Bunny]: https://graphics.stanford.edu/data/3Dscanrep/ Bunny model from Stanford's graphic department