1

我有从 Blender 导出的 json。如何更改 json 模型的某些材质的纹理?

4

2 回答 2

2

美好的一天,一旦加载了模型和后续纹理,它们就会成为 THREE.Mesh 和 THREE.Material 绑定纹理。因此,加载虽然是一个重要线索,但不一定是一个因素。要在运行时更改纹理,您需要捕获网格后加载事件

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(materials) 拥有多个材质网格,则需要确定要交换的纹理的索引并使用此模式:

mesh.material.materials[index].map = THREE.ImageUtils.loadTexture( 'newTexture.png' );

现在有很多相关的帖子,不一定是关于 JSON 的。但是您也可以使用这些作为参考使用 Three.js和JSONLoader加载 Maya 模型不显示模型

于 2013-11-01T14:00:28.777 回答
0
$('#materialchange').on('click',function(){
  oparcie.material.materials[0].map = THREE.ImageUtils.loadTexture('inne.png');
});

这工作得很好;)虽然它看起来像异常嵌套的路径

于 2016-01-20T16:12:12.040 回答