如何在Mapbox GL-JS中更新3d自定义图层的材料

时间:2019-10-30 16:21:29

标签: javascript mapbox mapbox-gl-js

我正在使用显示3d对象的Mapbox GL JS创建一个应用程序。使用Threebox.js将3d对象作为自定义图层加载。特别是,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文件,而不是在选项部分中提供单个文件。但是,运气不佳,至于我如何在自定义层加载后更新其选项。有什么建议或想法吗?非常感谢

0 个答案:

没有答案