Three.js GLTF三盒obj颜色主题

Three.js GLTF三盒obj颜色主题,three.js,mapbox,mapbox-gl-js,Three.js,Mapbox,Mapbox Gl Js,我使用以下代码在mapbox by threebox中插入一个GLTF对象。obj的外观看起来很暗。是否有任何选项可用于更改GLTF对象的颜色主题 var options = { obj: './models/WMK-CSC-ALL-XX-XX-00_0.gltf', mtl: './models/WMK-CSC-ALL-XX-XX-00_0.bin', type: 'gltf',

我使用以下代码在mapbox by threebox中插入一个GLTF对象。obj的外观看起来很暗。是否有任何选项可用于更改GLTF对象的颜色主题

     var options = {
              obj: './models/WMK-CSC-ALL-XX-XX-00_0.gltf',
              mtl: './models/WMK-CSC-ALL-XX-XX-00_0.bin', 
              type: 'gltf',
              scale: 1,
              units: 'meters',
              rotation: { x: 90, y: 120, z: 0 }, 
              anchor: 'center'
        }

      tb.loadObj(options, function (model) {
                let bldg = model.setCoords(origin3);
                tb.add(bldg);
        })

如果您正在使用,首先您的init参数是错误的,而不是:
mtl:'./models/WMK-CSC-ALL-XX-XX-00_0.bin'

应该是:
bin:'./models/WMK-CSC-ALL-XX-XX-00_0.bin'

如果使用默认灯光正确初始化Threebox:

window.tb=new-Threebox(
地图,
map.getCanvas().getContext('webgl'),//从映射画布获取上下文
{defaultLights:true}
);
它应该用一个
环境灯和两个
方向灯照亮。
我正在维护的是最新版本的,因此如果这不能解决您的问题,请随时在那里打开一个问题。

如果您正在使用,首先您的init参数是错误的,而不是:
mtl:'./models/WMK-CSC-ALL-XX-XX-00_0.bin'

应该是:
bin:'./models/WMK-CSC-ALL-XX-XX-00_0.bin'

如果使用默认灯光正确初始化Threebox:

window.tb=new-Threebox(
地图,
map.getCanvas().getContext('webgl'),//从映射画布获取上下文
{defaultLights:true}
);
它应该用一个
环境灯和两个
方向灯照亮。

我正在维护最新版本的,因此,如果这不能解决您的问题,请随时在那里打开问题。

感谢您的意见。我添加了两个“DirectionalLight”来解决这个问题

onAdd: function (map, mbxContext) {

                    tb.altitudeStep = 1;

                    //// initialize geometry and material of our cube object
                    var geometry = new THREE.BoxGeometry(30, 60, 120);

                    // create two three.js lights to illuminate the model
                    var directionalLight = new THREE.DirectionalLight(0xffffff);
                    directionalLight.position.set(0, -70, 100).normalize();
                    tb.scene.add(directionalLight);
                     
                    var directionalLight2 = new THREE.DirectionalLight(0xffffff);
                    directionalLight2.position.set(0, 70, 100).normalize();
                    tb.scene.add(directionalLight2);
                    ....
                    ....

谢谢你的意见。我添加了两个“DirectionalLight”来解决这个问题

onAdd: function (map, mbxContext) {

                    tb.altitudeStep = 1;

                    //// initialize geometry and material of our cube object
                    var geometry = new THREE.BoxGeometry(30, 60, 120);

                    // create two three.js lights to illuminate the model
                    var directionalLight = new THREE.DirectionalLight(0xffffff);
                    directionalLight.position.set(0, -70, 100).normalize();
                    tb.scene.add(directionalLight);
                     
                    var directionalLight2 = new THREE.DirectionalLight(0xffffff);
                    directionalLight2.position.set(0, 70, 100).normalize();
                    tb.scene.add(directionalLight2);
                    ....
                    ....

如果这解决了您的问题,那么很好,但是您是否更改了deinit参数以正确加载bin文件?默认参数(defaultLights:true)已使用,但不起作用。我的意思是此
bin:'./models/WMK-CSC-ALL-XX-XX-00_0.bin'
以正确加载gltf模型的bin文件,而不是您正在使用的
mtl:…
,该文件仅适用于obj/mtl模型,对gltf模型无效,我修改为bin:'./…'已准备就绪如果您可以共享该模型,我很想知道它有什么问题,如果它解决了您的问题,默认的灯光很好,但是您是否更改了de init参数以正确加载bin文件?默认参数(defaultLights:true)已使用,但不起作用。我的意思是此
bin:'./models/WMK-CSC-ALL-XX-XX-00_0.bin'
以正确加载gltf模型的bin文件,而不是您正在使用的
mtl:…
,该文件仅适用于obj/mtl模型,对gltf模型无效,我修改为bin:“./…”如果您可以共享该模型,我想知道它有什么问题以及默认灯光