Răsfoiți Sursa

BasisTextureLoader: Add deprecation warning (#23123)

* BasisTextureLoader: Deprecate

* Remove examples/screenshots/webgl_loader_texture_basis.jpg
Don McCurdy 3 ani în urmă
părinte
comite
dce33825b4

+ 0 - 143
docs/examples/en/loaders/BasisTextureLoader.html

@@ -1,143 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Loader] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-			Loader for Basis Universal GPU Texture Codec.<br><br>
-
-			[link:https://github.com/BinomialLLC/basis_universal/ 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.
-		</p>
-
-		<p>
-			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
-			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-			directory.
-		</p>
-
-		<h2>Code Example</h2>
-
-		<code>
-		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 );
-
-		} );
-		</code>
-
-		<h2>Examples</h2>
-
-		<p>
-			[example:webgl_loader_texture_basis]
-		</p>
-
-		<h2>Browser compatibility</h2>
-
-		<p>
-			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.
-		</p>
-		<p>
-			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
-		</p>
-		<p>
-			This loader relies on ES6 Promises and Web Assembly, which are not
-			supported in IE11.
-		</p>
-
-		<br>
-		<hr>
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [param:LoadingManager manager] )</h3>
-		<p>
-		[page:LoadingManager manager] — The [page:LoadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
-		</p>
-		<p>
-		Creates a new [name].
-		</p>
-
-		<h2>Properties</h2>
-		<p>See the base [page:Loader] class for common properties.</p>
-
-		<h2>Methods</h2>
-		<p>See the base [page:Loader] class for common methods.</p>
-
-		<h3>[method:CompressedTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
-		<p>
-		[page:String url] — A string containing the path/URL of the <em>.basis</em> file.<br />
-		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
-		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes. If the server does not set the Content-Length header; .[page:Integer total] will be 0.<br />
-		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
-		</p>
-		<p>
-		Load from url and call the <em>onLoad</em> function with the transcoded [page:CompressedTexture].
-		</p>
-
-		<h3>[method:this detectSupport]( [param:WebGLRenderer renderer] )</h3>
-		<p>
-		[page:WebGLRenderer renderer] — A renderer instance.
-		</p>
-		<p>
-		Detects hardware support for available compressed texture formats, to determine
-		the output format for the transcoder. Must be called before loading a texture.
-		</p>
-
-		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.
-		</p>
-		<p>
-		The WASM transcoder and JS wrapper are available from the
-		[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-		directory.
-		</p>
-
-		<h3>[method:this setWorkerLimit]( [param:Number limit] )</h3>
-		<p>
-		[page:Number limit] — Maximum number of workers. Default is '4'.
-		</p>
-		<p>
-		Sets the maximum number of web workers to be allocated by this instance.
-		</p>
-
-		<h3>[method:this dispose]()</h3>
-		<p>
-		Disposes the loader object, de-allocating any Web Workers created.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/BasisTextureLoader.js examples/jsm/loaders/BasisTextureLoader.js]
-		</p>
-	</body>
-</html>

+ 2 - 3
docs/examples/en/loaders/KTX2Loader.html

@@ -21,9 +21,8 @@
 		</p>
 
 		<p>
-			This loader parses the KTX 2.0 container and then relies on
-			[page:BasisTextureLoader] to complete the transcoding process. 
-			The required WASM transcoder and JS wrapper are available from the 
+			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
 			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
 			directory.
 		</p>

+ 0 - 143
docs/examples/zh/loaders/BasisTextureLoader.html

@@ -1,143 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh">
-	<head>
-		<meta charset="utf-8" />
-		<base href="../../../" />
-		<script src="page.js"></script>
-		<link type="text/css" rel="stylesheet" href="page.css" />
-	</head>
-	<body>
-		[page:Loader] &rarr;
-
-		<h1>[name]</h1>
-
-		<p class="desc">
-			Loader for Basis Universal GPU Texture Codec.<br><br>
-
-			[link:https://github.com/BinomialLLC/basis_universal/ 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.
-		</p>
-
-		<p>
-			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
-			[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-			directory.
-		</p>
-
-		<h2>代码示例</h2>
-
-		<code>
-		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 );
-
-		} );
-		</code>
-
-		<h2>例子</h2>
-
-		<p>
-			[example:webgl_loader_texture_basis]
-		</p>
-
-		<h2>Browser compatibility</h2>
-
-		<p>
-			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.
-		</p>
-		<p>
-			Transcoding to PVRTC1 (for iOS) requires square power-of-two textures.
-		</p>
-		<p>
-			This loader relies on ES6 Promises and Web Assembly, which are not
-			supported in IE11.
-		</p>
-
-		<br>
-		<hr>
-
-		<h2>Constructor</h2>
-
-		<h3>[name]( [param:LoadingManager manager] )</h3>
-		<p>
-		[page:LoadingManager manager] — The [page:LoadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
-		</p>
-		<p>
-		Creates a new [name].
-		</p>
-
-		<h2>Properties</h2>
-		<p>See the base [page:Loader] class for common properties.</p>
-
-		<h2>Methods</h2>
-		<p>See the base [page:Loader] class for common methods.</p>
-
-		<h3>[method:CompressedTexture load]( [param:String url], [param:Function onLoad], [param:Function onProgress], [param:Function onError] )</h3>
-		<p>
-		[page:String url] — A string containing the path/URL of the <em>.basis</em> file.<br />
-		[page:Function onLoad] — A function to be called after the loading is successfully completed.<br />
-		[page:Function onProgress] — (optional) A function to be called while the loading is in progress. The argument will be the XMLHttpRequest instance, that contains .[page:Integer total] and .[page:Integer loaded] bytes.<br />
-		[page:Function onError] — (optional) A function to be called if an error occurs during loading. The function receives error as an argument.<br />
-		</p>
-		<p>
-		Load from url and call the <em>onLoad</em> function with the transcoded [page:CompressedTexture].
-		</p>
-
-		<h3>[method:this detectSupport]( [param:WebGLRenderer renderer] )</h3>
-		<p>
-		[page:WebGLRenderer renderer] — A renderer instance.
-		</p>
-		<p>
-		Detects hardware support for available compressed texture formats, to determine
-		the output format for the transcoder. Must be called before loading a texture.
-		</p>
-
-		<h3>[method:this setTranscoderPath]( [param:String path] )</h3>
-		<p>
-		[page:String path] — Path to folder containing the WASM transcoder and JS wrapper.
-		</p>
-		<p>
-		The WASM transcoder and JS wrapper are available from the
-		[link:https://github.com/mrdoob/three.js/tree/dev/examples/js/libs/basis examples/js/libs/basis]
-		directory.
-		</p>
-
-		<h3>[method:this setWorkerLimit]( [param:Number limit] )</h3>
-		<p>
-		[page:Number limit] — Maximum number of workers. Default is '4'.
-		</p>
-		<p>
-		Sets the maximum number of web workers to be allocated by this instance.
-		</p>
-
-		<h3>[method:this dispose]()</h3>
-		<p>
-		Disposes the loader object, de-allocating any Web Workers created.
-		</p>
-
-		<h2>Source</h2>
-
-		<p>
-			[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/loaders/BasisTextureLoader.js examples/jsm/loaders/BasisTextureLoader.js]
-		</p>
-	</body>
-</html>

+ 0 - 2
docs/list.json

@@ -362,7 +362,6 @@
 
 			"Loaders": {
 				"3DMLoader": "examples/en/loaders/3DMLoader",
-				"BasisTextureLoader": "examples/en/loaders/BasisTextureLoader",
 				"DRACOLoader": "examples/en/loaders/DRACOLoader",
 				"FontLoader": "examples/en/loaders/FontLoader",
 				"GLTFLoader": "examples/en/loaders/GLTFLoader",
@@ -859,7 +858,6 @@
 			},
 
 			"加载器": {
-				"BasisTextureLoader": "examples/zh/loaders/BasisTextureLoader",
 				"DRACOLoader": "examples/zh/loaders/DRACOLoader",
 				"FontLoader": "examples/zh/loaders/FontLoader",
 				"GLTFLoader": "examples/zh/loaders/GLTFLoader",

+ 0 - 1
examples/files.json

@@ -108,7 +108,6 @@
 		"webgl_loader_stl",
 		"webgl_loader_svg",
 		"webgl_loader_tilt",
-		"webgl_loader_texture_basis",
 		"webgl_loader_texture_dds",
 		"webgl_loader_texture_exr",
 		"webgl_loader_texture_hdr",

+ 7 - 0
examples/jsm/loaders/BasisTextureLoader.js

@@ -48,6 +48,13 @@ class BasisTextureLoader extends Loader {
 		this.workerSourceURL = '';
 		this.workerConfig = null;
 
+		console.warn(
+
+			'THREE.BasisTextureLoader: This loader is deprecated, and will be removed in a future release. '
+			+ 'Instead, use Basis Universal compression in KTX2 (.ktx2) files with THREE.KTX2Loader.'
+
+		);
+
 	}
 
 	setTranscoderPath( path ) {

BIN
examples/screenshots/webgl_loader_texture_basis.jpg


+ 0 - 109
examples/webgl_loader_texture_basis.html

@@ -1,109 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-	<head>
-		<title>three.js webgl - basis texture loader</title>
-		<meta charset="utf-8">
-		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
-		<link type="text/css" rel="stylesheet" href="main.css">
-	</head>
-	<body>
-
-		<div id="info">
-			<a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> - webgl - basis texture loader<br />
-			<a href="https://github.com/binomialLLC/basis_universal" target="_blank">Basis Universal GPU Texture Codec</a>
-		</div>
-
-		<script type="module">
-
-			import * as THREE from '../build/three.module.js';
-
-			import { BasisTextureLoader } from './jsm/loaders/BasisTextureLoader.js';
-			import { OrbitControls } from './jsm/controls/OrbitControls.js';
-
-			let camera, scene, renderer;
-			let mesh;
-
-			init();
-			render();
-
-			function init() {
-
-				renderer = new THREE.WebGLRenderer( { antialias: true } );
-				renderer.setPixelRatio( window.devicePixelRatio );
-				renderer.setSize( window.innerWidth, window.innerHeight );
-				renderer.outputEncoding = THREE.sRGBEncoding;
-				document.body.appendChild( renderer.domElement );
-
-				scene = new THREE.Scene();
-
-				camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 0.1, 100 );
-				camera.position.set( 0, 0, 1 );
-				camera.lookAt( scene.position );
-
-				const controls = new OrbitControls( camera, renderer.domElement );
-				controls.addEventListener( 'change', render );
-
-				const geometry = flipY( new THREE.PlaneBufferGeometry() );
-				const material = new THREE.MeshBasicMaterial( { side: THREE.DoubleSide } );
-
-				mesh = new THREE.Mesh( geometry, material );
-
-				scene.add( mesh );
-
-				const loader = new BasisTextureLoader();
-				loader.setTranscoderPath( 'js/libs/basis/' );
-				loader.detectSupport( renderer );
-				loader.load( 'textures/compressed/canestra_di_frutta_caravaggio.basis', function ( texture ) {
-
-					texture.encoding = THREE.sRGBEncoding;
-					material.map = texture;
-					material.needsUpdate = true;
-
-					render();
-
-				}, undefined, function ( error ) {
-
-					console.error( error );
-
-				} );
-
-				window.addEventListener( 'resize', onWindowResize );
-
-			}
-
-			function onWindowResize() {
-
-				camera.aspect = window.innerWidth / window.innerHeight;
-				camera.updateProjectionMatrix();
-
-				renderer.setSize( window.innerWidth, window.innerHeight );
-
-				render();
-
-			}
-
-			function render() {
-
-				renderer.render( scene, camera );
-
-			}
-
-			/** Correct UVs to be compatible with `flipY=false` textures. */
-			function flipY( geometry ) {
-
-				const uv = geometry.attributes.uv;
-
-				for ( let i = 0; i < uv.count; i ++ ) {
-
-					uv.setY( i, 1 - uv.getY( i ) );
-
-				}
-
-				return geometry;
-
-			}
-
-		</script>
-
-	</body>
-</html>