THREE.JS GLTFLoader, загрузка сцены блендера с рабочим освещением - PullRequest
0 голосов
/ 02 января 2019

Я только начал тестировать GLTFLoader из THREE.js с новым экспортером blender здесь , и я могу добавить модель с (по крайней мере, того же цвета) материалом, и когда я добавляюимпортировала сцену в сцену THREE.js, сетка импортируется нормально, и когда я регистрирую ее в консоли, я также вижу камеру и источник света из импортированной по умолчанию сцены блендера.

Однако мне пришлось вручнуюдобавьте источник света THREE.js, чтобы видеть что-либо, чтобы казалось, что импортированный источник света распознается только как трехмерный объект.Есть ли какой-нибудь способ автоматически заставить импортированные источники света работать, или вам нужно программно добавлять источники света 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);
            });
        }

но как это сделать?Я нахожу интенсивность?

...