Options
All
  • Public
  • Public/Protected
  • All
Menu

Draco compression (https://google.github.io/draco/)

This class wraps the Draco module.

Encoder

The encoder is not currently implemented.

Decoder

By default, the configuration points to a copy of the Draco decoder files for glTF from the babylon.js preview cdn https://preview.babylonjs.com/draco_wasm_wrapper_gltf.js.

To update the configuration, use the following code:

    DracoCompression.Configuration = {
        decoder: {
            wasmUrl: "<url to the WebAssembly library>",
            wasmBinaryUrl: "<url to the WebAssembly binary>",
            fallbackUrl: "<url to the fallback JavaScript library>",
        }
    };

Draco has two versions, one for WebAssembly and one for JavaScript. The decoder configuration can be set to only support WebAssembly or only support the JavaScript version. Decoding will automatically fallback to the JavaScript version if WebAssembly version is not configured or if WebAssembly is not supported by the browser. Use DracoCompression.DecoderAvailable to determine if the decoder configuration is available for the current context.

To decode Draco compressed data, get the default DracoCompression object and call decodeMeshToGeometryAsync:

    var geometry = await DracoCompression.Default.decodeMeshToGeometryAsync(data);
see

https://playground.babylonjs.com/#DMZIBD#0

Hierarchy

  • DracoCompression

Implements

Index

Constructors

  • Constructor

    Parameters

    • Optional numWorkers: number

      The number of workers for async operations. Specify 0 to disable web workers and run synchronously in the current context.

    Returns DracoCompression

Properties

DefaultNumWorkers: number

Default number of workers to create when creating the draco compression object.

Accessors

  • get DecoderAvailable(): boolean
  • Returns true if the decoder configuration is available.

    Returns boolean

  • Default instance for the draco compression object.

    Returns DracoCompression

Methods

  • decodeMeshAsync(data: ArrayBufferView | ArrayBuffer, attributes?: {}): Promise<VertexData>
  • Decode Draco compressed mesh data to Babylon vertex data.

    deprecated

    Use decodeMeshToGeometryAsync for better performance in some cases

    Parameters

    • data: ArrayBufferView | ArrayBuffer

      The ArrayBuffer or ArrayBufferView for the Draco compression data

    • Optional attributes: {}

      A map of attributes from vertex buffer kinds to Draco unique ids

      • [kind: string]: number

    Returns Promise<VertexData>

    A promise that resolves with the decoded vertex data

  • decodeMeshToGeometryAsync(name: string, scene: Scene, data: ArrayBufferView | ArrayBuffer, attributes?: {}): Promise<Geometry>
  • Decode Draco compressed mesh data to Babylon geometry.

    Parameters

    • name: string

      The name to use when creating the geometry

    • scene: Scene

      The scene to use when creating the geometry

    • data: ArrayBufferView | ArrayBuffer

      The ArrayBuffer or ArrayBufferView for the Draco compression data

    • Optional attributes: {}

      A map of attributes from vertex buffer kinds to Draco unique ids

      • [kind: string]: number

    Returns Promise<Geometry>

    A promise that resolves with the decoded geometry

  • dispose(): void
  • Stop all async operations and release resources.

    Returns void

  • whenReadyAsync(): Promise<void>
  • Returns a promise that resolves when ready. Call this manually to ensure draco compression is ready before use.

    Returns Promise<void>

    a promise that resolves when ready

Legend

  • Constructor
  • Property
  • Method
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Property
  • Method
  • Static property
  • Static method

Settings

Theme