Как я могу динамически изменять материал на моей .obj-модели? Каждая из моих моделей содержит файлы .obj, .mtl и .jpg с текстурами. Должен ли я каким-либо образом изменить файл .mtl?Динамически изменять .mtl .obj OBJMTLLoader
В нижеприведенном коде I геометрия центра каждой дочерней сетки моего .obj, то я пытаюсь дать ей текстуру, но ни прокомментированный код, ни loader.load не дают текстуры.
var loader = new THREE.OBJMTLLoader();
loader.addEventListener('load', function (event) {
object = event.content;
for (var i = 0; i < object.children.length; i++) {
THREE.GeometryUtils.merge(geometry, object.children[i].geometry);
}
THREE.GeometryUtils.center(geometry);
//var materials = new THREE.ImageUtils.loadTexture("/obj/stol.mtl");
//mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(material));
var material = new THREE.MeshBasicMaterial({ color: 0xff0000 });
mesh = new THREE.Mesh(geometry, material);
mesh.scale.x = 0.25;
mesh.scale.y = 0.25;
mesh.scale.z = 0.25;
mesh.castShadow = true;
scene.add(mesh);
animate();
});
loader.load('/obj/stol.obj', '/obj/stol.mtl');
Я хотел бы иметь некоторые кнопки на моей странице, которые вызывают изменения текстуры OnClick, например
$(function(){
$('#txt_01').click(function(){
mesh.textureLoad("/obj/txt_01.mtl");
}
});
Работа демо: http://www.edar.com.pl/test-3d-2/
Я ищу подсказку, не готовый код, на самом деле no1 может мне помочь? –