我目前正在尝试根据导入的JSON模型上的光标位置更新单个纹理。以下是JSON模型的导入代码
var loader = new THREE.JSONLoader();
loader.load('slicedNew.json', function(geometry, materials) {
console.log(materials);
mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial( materials ));
mesh.scale.x = mesh.scale.y = mesh.scale.z = 8;
mesh.translation = THREE.GeometryUtils.center(geometry);
scene.add(mesh);
console.log('IMPORTED OBJECT: ', mesh);
});
以下是光标位于特定材料上的raycaster代码
switch(intersects[0].face.materialIndex)
{
case 0:
console.log('0 material index');
intersects[0].object.material.needsUpdate = true;
intersects[0].object.material.materials[0] = new THREE.MeshLambertMaterial({
map: crate
});
break;
任何时候我将鼠标悬停在形状的某一侧上,纹理会被加载,但它总是黑色,甚至初始化模型以使用它仍然显示为黑色的纹理,但我可以加载一个简单的立方体并将图像映射为这种形状的纹理没有问题。
任何帮助都将不胜感激。