Prechádzať zdrojové kódy

Remove useAlpha loader config

shrekshao 5 rokov pred
rodič
commit
7978d01850

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

@@ -34,7 +34,6 @@
 		<code>
 		var basisLoader = new THREE.BasisTextureLoader();
 		basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
-		basisLoader.useAlpha = false;
 		basisLoader.detectSupport( renderer );
 		basisLoader.load( 'diffuse.basis', function ( texture ) {
 

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

@@ -34,7 +34,6 @@
 		<code>
 		var basisLoader = new THREE.BasisTextureLoader();
 		basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
-		basisLoader.useAlpha = false;
 		basisLoader.detectSupport( renderer );
 		basisLoader.load( 'diffuse.basis', function ( texture ) {
 

+ 0 - 1
examples/js/libs/basis/README.md

@@ -19,7 +19,6 @@ Both are dependencies of `THREE.BasisTextureLoader`:
 ```js
 var basisLoader = new THREE.BasisTextureLoader();
 basisLoader.setTranscoderPath( 'examples/js/libs/basis/' );
-basisLoader.useAlpha = false;
 basisLoader.detectSupport( renderer );
 basisLoader.load( 'diffuse.basis', function ( texture ) {
 

+ 24 - 21
examples/js/loaders/BasisTextureLoader.js

@@ -20,7 +20,6 @@ THREE.BasisTextureLoader = function ( manager ) {
 
 	THREE.Loader.call( this, manager );
 
-	this.useAlpha = true;
 	this.transcoderPath = '';
 	this.transcoderBinary = null;
 	this.transcoderPending = null;
@@ -31,7 +30,6 @@ THREE.BasisTextureLoader = function ( manager ) {
 	this.workerSourceURL = '';
 	this.workerConfig = {
 		format: null,
-		useAlpha: true,
 		astcSupported: false,
 		etcSupported: false,
 		dxtSupported: false,
@@ -76,11 +74,11 @@ THREE.BasisTextureLoader.prototype = Object.assign( Object.create( THREE.Loader.
 
 		} else if ( config.dxtSupported ) {
 
-			config.format = this.useAlpha ? THREE.BasisTextureLoader.BASIS_FORMAT.cTFBC3 : THREE.BasisTextureLoader.BASIS_FORMAT.cTFBC1;
+			config.format = THREE.BasisTextureLoader.BASIS_FORMAT.cTFBC3;
 
 		} else if ( config.pvrtcSupported ) {
 
-			config.format = this.useAlpha ? THREE.BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA : THREE.BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;
+			config.format = THREE.BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA;
 
 		} else if ( config.etcSupported ) {
 
@@ -142,13 +140,13 @@ THREE.BasisTextureLoader.prototype = Object.assign( Object.create( THREE.Loader.
 
 				var config = this.workerConfig;
 
-				var { width, height, hasAlpha, mipmaps } = message;
+				var { width, height, hasAlpha, mipmaps, format } = message;
 
 				var texture;
 
-				switch(config.format) {
+				switch(format) {
 					case THREE.BasisTextureLoader.BASIS_FORMAT.cTFASTC_4x4:
-						texture = new THREE.CompressedTexture( mipmaps, width, height, THREE.BasisTextureLoader.COMPRESSED_RGBA_ASTC_4x4_KHR );
+						texture = new THREE.CompressedTexture( mipmaps, width, height, THREE.RGBA_ASTC_4x4_Format );
 						break;
 					case THREE.BasisTextureLoader.BASIS_FORMAT.cTFBC1:
 					case THREE.BasisTextureLoader.BASIS_FORMAT.cTFBC3:
@@ -164,7 +162,7 @@ THREE.BasisTextureLoader.prototype = Object.assign( Object.create( THREE.Loader.
 						texture = new THREE.CompressedTexture( mipmaps, width, height, THREE.RGBA_PVRTC_4BPPV1_Format );
 						break;
 					default:
-							throw new Error( 'THREE.BasisTextureLoader: No supported format available.' );
+						throw new Error( 'THREE.BasisTextureLoader: No supported format available.' );
 				}
 
 				texture.minFilter = mipmaps.length === 1 ? THREE.LinearFilter : THREE.LinearMipmapLinearFilter;
@@ -251,7 +249,6 @@ THREE.BasisTextureLoader.prototype = Object.assign( Object.create( THREE.Loader.
 				worker._taskCosts = {};
 				worker._taskLoad = 0;
 
-				this.workerConfig.useAlpha = this.useAlpha;
 				worker.postMessage( {
 					type: 'init',
 					config: this.workerConfig,
@@ -349,10 +346,6 @@ THREE.BasisTextureLoader.DXT_FORMAT_MAP[ THREE.BasisTextureLoader.BASIS_FORMAT.c
 THREE.BasisTextureLoader.DXT_FORMAT_MAP[ THREE.BasisTextureLoader.BASIS_FORMAT.cTFBC3 ] =
 	THREE.BasisTextureLoader.DXT_FORMAT.COMPRESSED_RGBA_S3TC_DXT5_EXT;
 
-// ASTC formats, from:
-// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/
-THREE.BasisTextureLoader.COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0;
-
 /* WEB WORKER */
 
 THREE.BasisTextureLoader.BasisWorker = function () {
@@ -377,7 +370,7 @@ THREE.BasisTextureLoader.BasisWorker = function () {
 
 					try {
 
-						var { width, height, hasAlpha, mipmaps } = transcode( message.buffer );
+						var { width, height, hasAlpha, mipmaps, format } = transcode( message.buffer );
 
 						var buffers = [];
 
@@ -387,7 +380,7 @@ THREE.BasisTextureLoader.BasisWorker = function () {
 
 						}
 
-						self.postMessage( { type: 'transcode', id: message.id, width, height, hasAlpha, mipmaps }, buffers );
+						self.postMessage( { type: 'transcode', id: message.id, width, height, hasAlpha, mipmaps, format }, buffers );
 
 					} catch ( error ) {
 
@@ -406,15 +399,15 @@ THREE.BasisTextureLoader.BasisWorker = function () {
 
 	function init( wasmBinary ) {
 
-		var m;
+		var BasisModule;
 		transcoderPending = new Promise( ( resolve ) => {
 
-			m = { wasmBinary, onRuntimeInitialized: resolve };
-			BASIS(m);
+			BasisModule = { wasmBinary, onRuntimeInitialized: resolve };
+			BASIS(BasisModule);
 
 		} ).then( () => {
 
-			var { BasisFile, initializeBasis } = m;
+			var { BasisFile, initializeBasis } = BasisModule;
 
 			_BasisFile = BasisFile;
 
@@ -440,6 +433,16 @@ THREE.BasisTextureLoader.BasisWorker = function () {
 
 		}
 
+		if ( !hasAlpha ) {
+			switch(config.format) {
+				case 9: // Hardcoded: THREE.BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA
+					config.format = 8; // Hardcoded: THREE.BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;
+					break;
+				default:
+					break;
+			}
+		}
+
 		if ( ! width || ! height || ! levels ) {
 
 			cleanup();
@@ -467,7 +470,7 @@ THREE.BasisTextureLoader.BasisWorker = function () {
 				0,
 				mip,
 				config.format,
-				config.useAlpha,
+				hasAlpha,
 				0
 			);
 
@@ -484,7 +487,7 @@ THREE.BasisTextureLoader.BasisWorker = function () {
 
 		cleanup();
 
-		return { width, height, hasAlpha, mipmaps };
+		return { width, height, hasAlpha, mipmaps, format: config.format };
 
 	}
 

+ 24 - 29
examples/jsm/loaders/BasisTextureLoader.js

@@ -11,14 +11,12 @@ import {
 	LinearMipmapLinearFilter,
 	Loader,
 	RGBA_ASTC_4x4_Format,
+	RGBA_PVRTC_4BPPV1_Format,
 	RGB_ETC1_Format,
 	RGB_PVRTC_4BPPV1_Format,
-	RGBA_PVRTC_4BPPV1_Format,
 	UnsignedByteType
 } from "../../../build/three.module.js";
 
-/* global Module, createBasisModule */
-
 /**
  * Loader for Basis Universal GPU Texture Codec.
  *
@@ -35,7 +33,6 @@ var BasisTextureLoader = function ( manager ) {
 
 	Loader.call( this, manager );
 
-	this.useAlpha = true;
 	this.transcoderPath = '';
 	this.transcoderBinary = null;
 	this.transcoderPending = null;
@@ -46,7 +43,6 @@ var BasisTextureLoader = function ( manager ) {
 	this.workerSourceURL = '';
 	this.workerConfig = {
 		format: null,
-		useAlpha: true,
 		astcSupported: false,
 		etcSupported: false,
 		dxtSupported: false,
@@ -91,11 +87,11 @@ BasisTextureLoader.prototype = Object.assign( Object.create( Loader.prototype ),
 
 		} else if ( config.dxtSupported ) {
 
-			config.format = this.useAlpha ? BasisTextureLoader.BASIS_FORMAT.cTFBC3 : BasisTextureLoader.BASIS_FORMAT.cTFBC1;
+			config.format = BasisTextureLoader.BASIS_FORMAT.cTFBC3;
 
 		} else if ( config.pvrtcSupported ) {
 
-			config.format = this.useAlpha ? BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA : BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;
+			config.format = BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA;
 
 		} else if ( config.etcSupported ) {
 
@@ -157,11 +153,11 @@ BasisTextureLoader.prototype = Object.assign( Object.create( Loader.prototype ),
 
 				var config = this.workerConfig;
 
-				var { width, height, hasAlpha, mipmaps } = message;
+				var { width, height, hasAlpha, mipmaps, format } = message;
 
 				var texture;
 
-				switch(config.format) {
+				switch(format) {
 					case BasisTextureLoader.BASIS_FORMAT.cTFASTC_4x4:
 						texture = new CompressedTexture( mipmaps, width, height, RGBA_ASTC_4x4_Format );
 						break;
@@ -179,7 +175,7 @@ BasisTextureLoader.prototype = Object.assign( Object.create( Loader.prototype ),
 						texture = new CompressedTexture( mipmaps, width, height, RGBA_PVRTC_4BPPV1_Format );
 						break;
 					default:
-							throw new Error( 'THREE.BasisTextureLoader: No supported format available.' );
+						throw new Error( 'THREE.BasisTextureLoader: No supported format available.' );
 				}
 
 				texture.minFilter = mipmaps.length === 1 ? LinearFilter : LinearMipmapLinearFilter;
@@ -363,10 +359,6 @@ BasisTextureLoader.DXT_FORMAT_MAP[ BasisTextureLoader.BASIS_FORMAT.cTFBC1 ] =
 BasisTextureLoader.DXT_FORMAT_MAP[ BasisTextureLoader.BASIS_FORMAT.cTFBC3 ] =
 	BasisTextureLoader.DXT_FORMAT.COMPRESSED_RGBA_S3TC_DXT5_EXT;
 
-// ASTC formats, from:
-// https://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_astc/
-BasisTextureLoader.COMPRESSED_RGBA_ASTC_4x4_KHR = 0x93B0;
-
 /* WEB WORKER */
 
 BasisTextureLoader.BasisWorker = function () {
@@ -391,7 +383,7 @@ BasisTextureLoader.BasisWorker = function () {
 
 					try {
 
-						var { width, height, hasAlpha, mipmaps } = transcode( message.buffer );
+						var { width, height, hasAlpha, mipmaps, format } = transcode( message.buffer );
 
 						var buffers = [];
 
@@ -401,7 +393,7 @@ BasisTextureLoader.BasisWorker = function () {
 
 						}
 
-						self.postMessage( { type: 'transcode', id: message.id, width, height, hasAlpha, mipmaps }, buffers );
+						self.postMessage( { type: 'transcode', id: message.id, width, height, hasAlpha, mipmaps, format }, buffers );
 
 					} catch ( error ) {
 
@@ -420,15 +412,15 @@ BasisTextureLoader.BasisWorker = function () {
 
 	function init( wasmBinary ) {
 
-		var m;
+		var BasisModule;
 		transcoderPending = new Promise( ( resolve ) => {
 
-			m = { wasmBinary, onRuntimeInitialized: resolve };
-			BASIS(m);
+			BasisModule = { wasmBinary, onRuntimeInitialized: resolve };
+			BASIS(BasisModule);
 
 		} ).then( () => {
 
-			var { BasisFile, initializeBasis } = m;
+			var { BasisFile, initializeBasis } = BasisModule;
 
 			_BasisFile = BasisFile;
 
@@ -454,6 +446,16 @@ BasisTextureLoader.BasisWorker = function () {
 
 		}
 
+		if ( !hasAlpha ) {
+			switch(config.format) {
+				case 9: // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGBA
+					config.format = 8; // Hardcoded: BasisTextureLoader.BASIS_FORMAT.cTFPVRTC1_4_RGB;
+					break;
+				default:
+					break;
+			}
+		}
+
 		if ( ! width || ! height || ! levels ) {
 
 			cleanup();
@@ -468,12 +470,6 @@ BasisTextureLoader.BasisWorker = function () {
 
 		}
 
-		if ( basisFile.getHasAlpha() ) {
-
-			console.warn( 'THREE.BasisTextureLoader: Alpha not yet implemented.' );
-
-		}
-
 		var mipmaps = [];
 
 		for ( var mip = 0; mip < levels; mip ++ ) {
@@ -487,7 +483,7 @@ BasisTextureLoader.BasisWorker = function () {
 				0,
 				mip,
 				config.format,
-				config.useAlpha,
+				hasAlpha,
 				0
 			);
 
@@ -504,10 +500,9 @@ BasisTextureLoader.BasisWorker = function () {
 
 		cleanup();
 
-		return { width, height, hasAlpha, mipmaps };
+		return { width, height, hasAlpha, mipmaps, format: config.format };
 
 	}
 
 };
-
 export { BasisTextureLoader };

+ 0 - 1
examples/webgl_loader_texture_basis.html

@@ -50,7 +50,6 @@
 
 				var loader = new BasisTextureLoader();
 				loader.setTranscoderPath( 'js/libs/basis/' );
-				loader.useAlpha = false;
 				loader.detectSupport( renderer );
 				loader.load( 'textures/compressed/PavingStones.basis', function ( texture ) {