threejs импорт GLTF: почему модель отображается по-другому?

#javascript #three.js

Вопрос:

Я новичок в threejs. Я экспортировал модель в GLTF из Blender и импортировал в threejs(v93). Но эффект рендеринга в threejs сильно отличается от эффекта в blender. Как я могу это исправить?

код threejs-это:

 const loader = new THREE.GLTFLoader();
            loader.load(url,function(gltf){
                let model = gltf.scene;
                model.scale.set(3.5,3.5,3.5);
                model.traverse(function(child){
                    if(child.isMesh){                       
                        child.material.emissive =  child.material.color;
                        child.material.emissiveMap = child.material.map;
                        
                    }
                })
                model.name = 'truck';
                scene.add(model);
            })  
 

разница между threejs и blender

Комментарии:

1. Почему вы устанавливаете эмиссионное свойство материала на его цвет (и эмиссионную карту на его текстуру)? Это может испортить ваше освещение.

2. Это проявляется по-другому, потому что с Three.js, вы должны вручную добавить освещение. Вот краткая демонстрация того, как осветить сцену, но возможности безграничны.

3. Если не установить эмиссионное свойство материала в его цвет, импортированная модель будет выглядеть полностью черной. @Роберт Мэй

4. Спасибо за ваше руководство. Я сначала прочту это. @Маркиззо

5. @Marquizzo Я добавил к модели прожектор, потому что думаю, что он лучше подходит для внутренней сцены. Но, похоже, я должен придать прожектору сильную интенсивность около 4~5, чтобы модель выглядела лучше. Но это повлияет на всю сцену. Есть ли какие — нибудь способы сделать это?