2017-03-05 1 views

Antwort

1

Das Hauptproblem beim Anwenden einer Textur auf ein .FBX-Modell besteht darin, dass die .FBX als eine Gruppe von Untermodellen mit jeweils eigenen Materialien geladen wird. Die Art und Weise dieser Texturen zu ersetzen ist Traverse die Modellstruktur:

// FBX loader returns a group containing a multiple sub-objects. Traverse and apply texture to all. 
group.traverse(function (child) { 
    if (child instanceof THREE.Mesh) { 

     // apply texture 
     child.material.map = texture 
     child.material.needsUpdate = true; 
    } 
}); 

Für ein funktionstüchtiges Beispiel habe ich geändert das Standard three.js FBX Beispiel dies zu demonstrieren:

http://www.eponalabs.com/experiments/FBXReplaceTexture/fbx_replace_texture.html

Wenn Sie auf die Schaltfläche klicken, wird das obige Codefragment verwendet, um die Texturen durch ein Platzhalterbild von Unsplash.it zu ersetzen.

Running man with texture replaced

+1

'mesh' ist eine Gruppe? Vielleicht sollten Sie es "Gruppe" nennen, um Verwirrung zu vermeiden. – WestLangley

Verwandte Themen