我刚开始测试GLTFLoader三.js新的搅拌机出口商
here
,我可以添加一个具有(至少相同颜色)材质的模型,当我将导入的场景添加到三.js场景中,网格被很好地导入,当我将其记录到控制台时,我也会看到从默认混合器场景导入的摄影机和灯光。
但是,我不得不手动添加三.js光线可以看到任何东西,所以看起来导入的光线只能被识别为3D对象。有没有什么方法可以自动让导入的灯光工作,或者您必须通过编程添加灯光三.js导入的“灯光”对象位置的灯光?如果是这样的话,有没有一种方法来匹配搅拌机的太阳光和聚光灯,让它们朝向正确的方向?或者有什么内在的方法可以做到这一点?
顺便说一句,这是我到目前为止的代码(仍然没有添加所有灯光支持):
function automaticallyAddLightsTo(inputScene) {
inputScene.children.forEach((x) => {
var light = new THREE.DirectionalLight( 0xffffff, 0),//placeholder
isActuallyALight = false;
if(x.name.includes("Sun")) {
light = new THREE.DirectionalLight( 0xffffff, 1);
isActuallyALight = true;
} else if(x.name.includes("Point")) {
light = newTHREE.PointLight( 0xffffff, 1, 100);
isActuallyALight = true;
} //etc for other lights
light.position.copy(x.position);
light.rotation.copy(x.rotation);
light.scale.copy(x.scale);
light.quaternion.copy(x.quaternion);
if(isActuallyALight)
s.add(light);
});
}