Я создаю приложение с помощью Mapbox GL JS, которое отображает 3D-объект. 3D-объект загружается как пользовательский слой с использованием Threebox.js. В частности, 3d-файл является файлом .obj, а материал объекта загружается как файл .mtl.
После того, как модель добавлена на мою карту, я хотел бы иметь возможность изменять материальность объекта с помощью переключателя. (допустим, по умолчанию модель имеет синий материал, и когда мы нажимаем кнопку, модель получает красный материал). Как бы я это сделал ?? Это функция, которая загружает мой 3d-объект в threebox:
function myScheme(filename,filepath,block){
this.options={obj:filepath, mtl:'models/a3_3.mtl'};
this.id=filename+block,
this.type= 'custom',
this.renderingMode= '3d',
this.onAdd= function(map, mbxContext){
window.tb = new Threebox(map, mbxContext, {defaultLights: true});
tb.loadObj(this.options, function(model) {
scheme = model.setCoords(origin);
tb.add(scheme);
})
}, // end of onAdd function
this.render= function(gl, matrix){
tb.update()
}
};
Я попытался предоставить набор файлов .mtl вместо одного в части параметров, но не могу сказать, какЯ могу обновить параметры пользовательского слоя после его загрузки. Есть предложения или мысли? Большое спасибо