返回介绍

手册

参考

示例

开发者参考

BasisTextureLoader

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

Loader for Basis Universal GPU Texture Codec.

Basis Universal is a "supercompressed" GPU texture and texture video compression system that outputs a highly compressed intermediate file format (.basis) that can be quickly transcoded to a wide variety of GPU texture compression formats.

This loader parallelizes the transcoding process across a configurable number of web workers, before transferring the transcoded compressed texture back to the main thread. The required WASM transcoder and JS wrapper are available from the examples/js/libs/basis directory.

代码示例

const basisLoader = new BasisTextureLoader();
basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
basisLoader.detectSupport( renderer );
basisLoader.load( 'diffuse.basis', function ( texture ) {
  const material = new THREE.MeshStandardMaterial( { map: texture } );
}, function () {
  console.log( 'onProgress' );
}, function ( e ) {
  console.error( e );
} );

例子

webgl_loader_texture_basis

Browser compatibility

BasisTextureLoader transcodes input textures in '.basis' format to an appropriate compressed texture format for the target device, where possible. This allows the same source texture to be served across desktop, Android, and iOS devices, and transcoded into ASTC, DXT, ETC1, or PVRTC1. Other output formats may be supported in the future.

Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.

This loader relies on ES6 Promises and Web Assembly, which are not supported in IE11.



Constructor

BasisTextureLoader( manager : LoadingManager )

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

Creates a new BasisTextureLoader.

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 .basis 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.

Load from url and call the onLoad function with the transcoded CompressedTexture.

.detectSupport ( renderer : WebGLRenderer ) : this

renderer — A renderer instance.

Detects hardware support for available compressed texture formats, to determine the output format for the transcoder. Must be called before loading a texture.

.setTranscoderPath ( path : String ) : this

path — Path to folder containing the WASM transcoder and JS wrapper.

The WASM transcoder and JS wrapper are available from the examples/js/libs/basis directory.

.setWorkerLimit ( limit : Number ) : this

limit — Maximum number of workers. Default is '4'.

Sets the maximum number of web workers to be allocated by this instance.

.dispose () : this

Disposes the loader object, de-allocating any Web Workers created.

Source

examples/jsm/loaders/BasisTextureLoader.js

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

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

发布评论

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