Javascript 在three.js中加载随机纹理

Javascript 在three.js中加载随机纹理,javascript,three.js,Javascript,Three.js,假设我有10个对象,我想给每个对象一个从10个纹理池中随机挑选的纹理。对于这个网格对象,我该如何处理 for(var int = 0; int <= 10 ; int++) { var loader = new THREE.TextureLoader(); var testMat = new THREE.MeshPhongMaterial({ map: loader.load('images/image1') }); var testGeo = new THREE.Sp

假设我有10个对象,我想给每个对象一个从10个纹理池中随机挑选的纹理。对于这个网格对象,我该如何处理

for(var int = 0; int <= 10 ; int++)
  { var loader = new THREE.TextureLoader();
    var testMat = new THREE.MeshPhongMaterial({ map: loader.load('images/image1') });
    var testGeo = new THREE.SphereGeometry(50, 50, 50);

    testSphere = new THREE.Mesh(testGeo, testMat);
    testSphere.position.set(distance, 100, 100);
    scene.add(testSphere); }

for(var int=0;int假设所有纹理图像都以数字/顺序方式命名,则可以执行以下操作:

...
var testMat = new THREE.MeshPhongMaterial({ map: loader.load('images/image' + THREE.Math.randInt(1, 10) ) });
...
如果没有,那么您应该以类似于此的方式创建一个文件名列表,并从列表中选择一个随机值:

var texturesList = [
    'images/image1',
    'images/some-other-image',
    'images/yet-another-image',
    ...
    'images/10th-image'
];
...
...
var randIndex = THREE.Math.randInt(0, texturesList.length - 1);
var randTexture = loader.load(texturesList[randIndex]);
var testMat = new THREE.MeshPhongMaterial({ map: randTexture });
...

假设所有纹理图像都以数字/顺序方式命名,则可以执行以下操作:

...
var testMat = new THREE.MeshPhongMaterial({ map: loader.load('images/image' + THREE.Math.randInt(1, 10) ) });
...
如果没有,那么您应该以类似于此的方式创建一个文件名列表,并从列表中选择一个随机值:

var texturesList = [
    'images/image1',
    'images/some-other-image',
    'images/yet-another-image',
    ...
    'images/10th-image'
];
...
...
var randIndex = THREE.Math.randInt(0, texturesList.length - 1);
var randTexture = loader.load(texturesList[randIndex]);
var testMat = new THREE.MeshPhongMaterial({ map: randTexture });
...
可能的重复可能的重复