ThreeJS GLTFLoader material-array

Ich bin versucht, ein Modell laden mit GLTFLoader und wenden unterschiedliche Farbe für jede Fläche des Objekts(Würfel) mit material-array. Aber es funktioniert nicht.

            var materials = [ new THREE.MeshPhongMaterial( {color: 0x552811,specular: 0x222222,shininess: 25}),
                              new THREE.MeshPhongMaterial( {color: 0x552811,specular: 0x222222,shininess: 25})];

            loader = new GLTFLoader();
            loader.load( "./Model/cube.glb", function ( gltf ) {
                 var geometry = gltf.scene.children[ 2 ].geometry;
                 mesh = new THREE.Mesh( geometry, materials );
                 scene.add( mesh );
            } );

Wenn ich den material-array auf single-material-Objekt, das es funktioniert, wie

     mesh = new THREE.Mesh( geometry, materials[0] );

Ich dachte das problem ist mit der Angabe von array-mesh-material, aber wenn Sie das Netz manuell aus und geben Sie das array als material, dann funktioniert es auch.

var geometry = new THREE.BoxBufferGeometry( 10, 10, 10 );
var mesh = new THREE.Mesh( geometry,materials);
scene.add(mesh);

Das problem ist nur, wenn das Netz geladen wird mit GLTFLoader und probieren anwenden material-array. Dasselbe geschieht mit OBJLoader auch. Was könnte das problem sein.

0
2019-09-17 08:50:26
Quelle
0 Antworten

Sehen Sie sich andere Fragen zu Tags an