2016-05-04 6 views
0

Ich versuche ein Modell zu laden, das ich mit mehreren Materialien hergestellt habe, und ich möchte wissen, wie ich auf das Array von Materialien zugreifen kann. Hier mein aproachWie wird ein Multimaterial-DAE in drei js geladen?

loader.load('./dae/tenis.DAE', function (collada){ 
    dae = collada.scene; 
    dae.scale.x = dae.scale.y = dae.scale.z = 0.5; 

    dae.traverse(function(child){ 
     if(child instanceof THREE.Mesh) 
     { 
      var text = textLoader.load('./dae/part1/part1_DIF00000.png'); 
      child.MultiMaterial.materials[0] = text; 
     } 
    }); 

    dae.updateMatrix(); 
    init(); 
    animate(); 
}); 

Aber es funktioniert nicht, auch muß ich für die Materialien in separatem Weg, um die Textur laden, kann ich nicht nach zugreifen. Einige Hinweise?

Antwort

0

Ich kann auf das gesamte Material mit Namen oder ID zugreifen, meine Vorgehensweise war falsch. Sie können alle Materialnamen in der .dae-Modelldatei sehen. Hier der richtige Weg:

dae.traverse(function(child){ 
    if(child instanceof THREE.Mesh) 
    { 
     var text = textLoader.load('./dae/part1/part1_DIF00000.png'); 
     if(child.material.name == "materialName") 
     { 
      //do something 
     } 
    } 
});