Как обновить материал трехмерного пользовательского слоя в Mapbox GL-JS - PullRequest
0 голосов
/ 30 октября 2019

Я создаю приложение с помощью 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 вместо одного в части параметров, но не могу сказать, какЯ могу обновить параметры пользовательского слоя после его загрузки. Есть предложения или мысли? Большое спасибо

...