我从Blender导出了json。如何更改json模型的某些材质的纹理?
答案 0 :(得分:2)
美好的一天,一旦模型和后续纹理被加载,它们就会变成THREE.Mesh和THREE.Material bound texture。因此,加载虽然是一个重要线索,但并非必然。要在运行时更改纹理,请捕获网格后加载事件
var loader = new THREE.JSONLoader(), function (geometry) {
mesh = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial());
};
然后,甚至在上面的加载器中,您可以应用如下自定义纹理:
mesh.material.map = THREE.ImageUtils.loadTexture( 'newTexture.png' );
或者如果您通过THREE.MeshFaceMaterial(材质)有多个材质网格,则需要确定要换出的纹理的索引并使用此模式:
mesh.material.materials[index].map = THREE.ImageUtils.loadTexture( 'newTexture.png' );
现在有很多相关的帖子,关于JSON并不是必需的。但您也可以将这些用作参考Loading Maya model with Three.js和JSONLoader not displaying model
答案 1 :(得分:0)
$('#materialchange').on('click',function(){
oparcie.material.materials[0].map = THREE.ImageUtils.loadTexture('inne.png');
});
这很好用;) 它虽然看起来像异常嵌套的路径