Ich habe kürzlich three.js Beispiel von der offiziellen Seite, die mit meinen Collada-Objekten (.dae) arbeitet, mit ColladaLoader.js
gemacht.
Nun ist meine Frage, wie ändere ich das geladene Collada-Objekt Farbattribut und füge eine benutzerdefinierte Textur hinzu? Ich habe versucht, die Textur ohne Glück hinzuzufügen.
Hier ist mein Code (gegenüber dem ursprünglichen Beispiel leicht geändert):
%Vor%Nach vielen Problemen haben wir einen kleinen Hack in ColladaLoader.js geschrieben, der die Idee von @gaitat übernommen hat hexe ersetzt im Grunde den alten Pfad zu den Texturen aus den Bildern, übergibt einige neue in einem Array und verwendet reguläre Ausdrücke, um das XML für die .png oder .jpg unter dem images-Tag zu analysieren. Nicht sicher, ob es einen einfacheren Weg gibt, aber da die Unterstützung begrenzt war, mussten wir irgendwie eine Lösung finden
%Vor%Sie können Ihre Collada-Szenenmaterialien mit dieser Art von Funktion rekursiv überschreiben. Es durchläuft die gesamte Hierarchie und ordnet ein Material zu.
%Vor% Verwenden Sie es wie setMaterial(dae, new THREE.MeshBasicMaterial({color: 0xff0000}));
Sie könnten das wahrscheinlich anpassen, um die vorhandenen Materialeigenschaften zu ändern, statt bei Bedarf eine neue zu vergeben.
Tags und Links javascript collada three.js webgl textures