我正在使用显示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文件,而不是在选项部分中提供单个文件。但是,运气不佳,至于我如何在自定义层加载后更新其选项。有什么建议或想法吗?非常感谢