Как мне получить доступ / изменить материал импортированного объекта gltf в трех. js по отдельности? - PullRequest
0 голосов
/ 26 марта 2020

Я экспортировал объект из Blender в gltf-файл и импортировал его в мой проект 3. js. (Включая материалы, у меня всего 2)

let loader = new THREE.GLTFLoader();

loader.load('Objects/MyBox.gltf', (gltf) => {

let box = gltf.scene;

box.traverse((child) => {
                        if (child.isMesh) child.material = boxMaterial; // a material i created in the code earlier
                    });
                    scene.add(box);
                });

Этот код заставляет мой импортированный объект (который представляет собой сложенный прямоугольник) иметь одинаковый материал (boxMaterial) снаружи и изнутри. Но так как я создал его в bleder (внутри коробки есть внутренний материал, снаружи есть внешний материал), я хочу, чтобы это было в моем проекте. js. То, что я хочу, - это то, что boxMaterial (созданный в трех. js) должен быть только на внешнем материале (созданном в blender).

Мой вопрос -> как мне узнать / получить доступ к указанному c импортированный материал моего импортированного объекта должен иметь определенный материал в трех. js?

Проще говоря: Мой "child.material" содержит мои необходимые материалы из блендера. ( Всего 2) Но как мне получить доступ только к первому?

Я думаю, что я ищу что-то вроде box.children [0] .material .. или около того. Индекс 0 - это мой внешний материал.

Заранее спасибо!

...