返回介绍

手册

参考

示例

开发者参考

DRACOLoader

发布于 2021-07-10 14:14:19 字数 5433 浏览 2663 评论 0 收藏 0

A loader for geometry compressed 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. When using Draco with glTF, an instance of DRACOLoader will be used internally by GLTFLoader.

代码示例

// Instantiate a loader
const loader = new DRACOLoader();
// Specify path to a folder containing WASM/JS decoding libraries.
loader.setDecoderPath( '/examples/js/libs/draco/' );
// Optional: Pre-fetch Draco WASM/JS module.
loader.preload();
// Load a Draco geometry
loader.load(
  // resource URL
  'model.drc',
  // called when the resource is loaded
  function ( geometry ) {
    const material = new THREE.MeshStandardMaterial( { color: 0x606060 } );
    const mesh = new THREE.Mesh( geometry, material );
    scene.add( mesh );
  },
  // called as loading progresses
  function ( xhr ) {
    console.log( ( xhr.loaded / xhr.total * 100 ) + '% loaded' );
  },
  // called when loading has errors
  function ( error ) {
    console.log( 'An error happened' );
  }
);

例子

webgl_loader_draco

Browser compatibility

DRACOLoader relies on ES6 Promises, which are not supported in IE11. To use the loader in IE11, you must include a polyfill providing a Promise replacement. DRACOLoader will automatically use either the JS or the WASM decoding library, based on browser capabilities.



Constructor

DRACOLoader( manager : LoadingManager )

manager — The loadingManager for the loader to use. Default is THREE.DefaultLoadingManager.

Creates a new DRACOLoader.

Properties

See the base Loader class for common properties.

Methods

See the base Loader class for common methods.

.load ( url : String, onLoad : Function, onProgress : Function, onError : Function ) : null

url — A string containing the path/URL of the .drc file.
onLoad — A function to be called after the loading is successfully completed.
onProgress — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .total and .loaded bytes.
onError — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.

Begin loading from url and call the onLoad function with the decompressed geometry.

.setDecoderPath ( value : String ) : this

value — Path to folder containing the JS and WASM decoder libraries.

.setDecoderConfig ( config : Object ) : this

config.type - (Optional) "js" or "wasm".

Provides configuration for the decoder libraries. Configuration cannot be changed after decoding begins.

.setWorkerLimit ( workerLimit : Number ) : this

workerLimit - Maximum number of workers to be allocated. Default is 4.

Sets the maximum number of Web Workers to be used during decoding. A lower limit may be preferable if workers are also for other tasks in the application.

.preload () : this

Requests the decoder libraries, if not already loaded.

.dispose () : this

Disposes of the decoder resources and deallocates memory. The decoder cannot be reloaded afterward.

Source

examples/jsm/loaders/DRACOLoader.js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文