THREE.JS GLTFLoader,使用工作灯加载搅拌机场景

时间:2019-01-02 07:55:39

标签: javascript three.js blender

我刚刚开始使用新的Blender Exporter here从THREE.js测试GLTFLoader,并且能够添加(至少具有相同颜色)材质的模型,并且在添加导入的场景时到THREE.js场景中,网格已很好地导入,当我将其登录到控制台时,我还看到了默认导入的搅拌机场景中的摄像机和灯光。

但是,我必须手动添加THREE.js灯光才能看到任何东西,因此看来导入的灯光只能识别为3D对象。有什么方法可以自动使导入的光源工作,还是必须以编程方式在导入的“光源”对象的位置添加THREE.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);
            });
        }

但是如何检测强度?

1 个答案:

答案 0 :(得分:0)

也许这对搅拌机灯有帮助​​:

renderer.physicallyCorrectLights = true;
相关问题