0
私はFBXLoader2経由でロードする.fbxモデルを持っています。 シーンに3つのメッシュを含むモデルを追加すると、それがグループとして追加されます。今度は、グループ内の1つのメッシュの色を変更しようとしましたが、3つのメッシュすべてが色を取得しています。それで、私は彼らがグループのために "つながっている"かもしれないと思った。だから私はそれらを切り離した(SceneUtils.detach)。 今、私はすべてのメッシュをシーンに持っています。それでも、1つのメッシュの色を変更すると、3つすべてが色を取得します。私がconsole.logにメッシュ(グループ内または分離した)を表示すると、正しいメッシュが表示されます。Three.js FBXLoader2、単一のメッシュの色を変更する(グループ内または切り離された)
var loader = new THREE.FBXLoader(manager);
loader.load('somemodel.fbx', function(object) {
model = object;
var modelLength = model.children.length;
for (i=0;i<modelLength;i++) {
THREE.SceneUtils.detach(model.children[0], model, scene);
}
scene.children[0].material.emissive.setHex(0xff0000);
}
メッシュの位置やサイズを変更しようとすると、正常に動作します。 誰も前に問題を抱えていましたか?
これは同じMaterialインスタンスを共有しているためです。このインスタンスの色を変更すると、すべてのメッシュが変更の影響を受けます。 色を変更する代わりに、更新したいメッシュの新しい色で新しいMaterialインスタンスを作成してみてください。 –
それは理にかなっています!ありがとう、私はこれをチェックします! – Paul