|
@@ -0,0 +1,46 @@
|
|
|
+# Basis Universal GPU Texture Compression
|
|
|
+
|
|
|
+Basis Universal is a "[supercompressed](http://gamma.cs.unc.edu/GST/gst.pdf)"
|
|
|
+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.
|
|
|
+
|
|
|
+[GitHub](https://github.com/BinomialLLC/basis_universal)
|
|
|
+
|
|
|
+## Transcoders
|
|
|
+
|
|
|
+Basis Universal texture data may be used in two different file formats:
|
|
|
+`.basis` and `.ktx2`, where `ktx2` is a standardized wrapper around basis texture data.
|
|
|
+
|
|
|
+For further documentation about the Basis compressor and transcoder, refer to
|
|
|
+the [Basis GitHub repository](https://github.com/BinomialLLC/basis_universal).
|
|
|
+
|
|
|
+The folder contains two files required for transcoding `.basis` or `.ktx2` textures:
|
|
|
+
|
|
|
+* `basis_transcoder.js` — JavaScript wrapper for the WebAssembly transcoder.
|
|
|
+* `basis_transcoder.wasm` — WebAssembly transcoder.
|
|
|
+
|
|
|
+Both are dependencies of `KTX2Loader`:
|
|
|
+
|
|
|
+```js
|
|
|
+const ktx2Loader = new KTX2Loader();
|
|
|
+ktx2Loader.setTranscoderPath( 'examples/jsm/libs/basis/' );
|
|
|
+ktx2Loader.detectSupport( renderer );
|
|
|
+ktx2Loader.load( 'diffuse.ktx2', function ( texture ) {
|
|
|
+
|
|
|
+ const material = new THREE.MeshStandardMaterial( { map: texture } );
|
|
|
+
|
|
|
+}, function () {
|
|
|
+
|
|
|
+ console.log( 'onProgress' );
|
|
|
+
|
|
|
+}, function ( e ) {
|
|
|
+
|
|
|
+ console.error( e );
|
|
|
+
|
|
|
+} );
|
|
|
+```
|
|
|
+
|
|
|
+## License
|
|
|
+
|
|
|
+[Apache License 2.0](https://github.com/BinomialLLC/basis_universal/blob/master/LICENSE)
|