Thanks a bunch for the reference @mrdoob
Where I fail is that I can’t reference the same texture file for two different maps:
Promise.all([
new Promise((resolve, reject) => basisLoader.load(
"Photog_Glace1/Cerberus_A.basis", resolve, undefined, reject ) ),
new Promise((resolve, reject) => basisLoader.load(
"Photog_Glace1/Cerberus_N.basis", resolve, undefined, reject ) ),
**new Promise((resolve, reject) => basisLoader.load(
"Photog_Glace1/Cerberus_RM.basis", resolve, undefined, reject ) ),**
** new Promise((resolve, reject) => basisLoader.load(
"Photog_Glace1/Cerberus_RM.basis", resolve, undefined, reject ) ),**
** ]).then(([albedoM, normalMap, metalMap, roughMap]) => {**
Yields error:
BasisTextureLoader.js:152 Uncaught (in promise) DOMException: Failed to execute 'postMessage' on 'Worker': ArrayBuffer at index 0 is already neutered.
at examples/jsm/loaders/BasisTextureLoader.js:152:13
at new Promise (<anonymous>)
at examples/jsm/loaders/BasisTextureLoader.js:146:12
I tried this code but I only get a full metal textured object without roughness (both roughness and metalness settings=1). Can I please get some guidance how to build this with Promise please
Promise.all([
new Promise((resolve, reject) => basisLoader.load( "Photog_Glace1/Cerberus_A.basis", resolve, undefined, reject ) ),
new Promise((resolve, reject) => basisLoader.load( "Photog_Glace1/Cerberus_N.basis", resolve, undefined, reject ) ),
new Promise((resolve, reject) => basisLoader.load(Photog_Glace1/Cerberus_RM.basis", resolve, undefined, reject ) ),
]).then(([albedoM, normalMap, metalMap, roughMap]) => {
albedoM.encoding = THREE.sRGBEncoding;
albedoM.wrapS = THREE.RepeatWrapping;
albedoM.wrapT = THREE.RepeatWrapping;
albedoM.repeat.x = 1;
albedoM.repeat.y = 1;
normalMap.wrapS = THREE.RepeatWrapping;
normalMap.wrapT = THREE.RepeatWrapping;
normalMap.repeat.x = 1;
normalMap.repeat.y = 1;
metalMap.wrapS = THREE.RepeatWrapping;
metalMap.wrapT = THREE.RepeatWrapping;
metalMap.repeat.x = 1;
metalMap.repeat.y = 1;
roughMap=metalMap;
vaseMeshMaterial = new THREE.MeshStandardMaterial({
roughnessMap: roughMap,
metalnessMap: metalMap,
map: albedoM,
normalMap: normalMap,
roughness: settings.roughness,
metalness: settings.metalness,