W3cubDocs

/Three.js

[page:Loader] →

KTX2Loader

Loader for KTX 2.0 GPU Texture containers.

KTX 2.0 is a container format for various GPU texture formats. The loader supports Basis Universal GPU textures, which can be quickly transcoded to a wide variety of GPU texture compression formats. While KTX 2.0 also allows other hardware-specific formats, this loader does not yet parse them.

This loader parses the KTX 2.0 container and transcodes to a supported GPU compressed texture format. The required WASM transcoder and JS wrapper are available from the examples/jsm/libs/basis directory.

Import

[name] is an add-on, and must be imported explicitly. See Installation / Addons.


			import { KTX2Loader } from 'three/addons/loaders/KTX2Loader.js';
		

Code Example


		var ktx2Loader = new KTX2Loader();
		ktx2Loader.setTranscoderPath( 'examples/jsm/libs/basis/' );
		ktx2Loader.detectSupport( renderer );
		ktx2Loader.load( 'diffuse.ktx2', function ( texture ) {

			var material = new THREE.MeshStandardMaterial( { map: texture } );

		}, function () {

			console.log( 'onProgress' );

		}, function ( e ) {

			console.error( e );

		} );
		

Examples

[example:webgl_loader_texture_ktx2]

Browser compatibility

This loader relies on Web Assembly which is not supported in older browsers.



Constructor

KTX2Loader( LoadingManager manager )

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

Creates a new [name].

Properties

See the base Loader class for common properties.

Methods

See the base Loader class for common methods.

load(String url, Function onLoad, Function onProgress, Function onError): CompressedTexture

url — A string containing the path/URL of the .ktx2 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. If the server does not set the Content-Length header; .total will be 0.
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.

this.detectSupport(WebGLRenderer renderer)

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.

this.setTranscoderPath(String path)

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

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

this.setWorkerLimit(Number limit)

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

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

this.dispose()

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

© 2010–2025 Three.js Authors
Licensed under the MIT License.
https://threejs.org/docs/examples/en/loaders/KTX2Loader.html