3D model light Problem

Hello, everybody.
I have a problem with 3D model problem.


So as you can see in above video, when I change the texture, that object seems have new light.
I am not sure if this is due to blender or three.js light.
I assure that I don’t add any light when I change the texture.
Where is my problem?
This is my function that changes the texture.
let changeTexture = (texture, color) => {
let path = ‘/assets/model/house/’ + texture;
let newTexture = textureLoader.load(path);
newTexture.flipY = false;
let newMaterial = new THREE.MeshPhongMaterial({map: newTexture, color: 0xffffff, skinning: true});
if (selectedObject) {
selectedObject.traverse(child =>{
child.material = newMaterial;
});
selectedObject.userData.style = color;
showLavel()
}
};
Thank you very much.

Instead of creating a new material each time you want to change the texture, try just updating its .map property:

let newTexture = textureLoader.load(path);
child.material.map = newTexture;
1 Like

Thank you for your reply, @marquizzo
So when the model is created, there is no material.
I mean, the skin comes from blender. so if we want to change the skin, we have to create new material and apply texture to this new material.
In other words, when the model imported in the scene, it doesn’t have material.
So I fixed it with material config.
let newMaterial = new THREE.MeshPhongMaterial({map: newTexture,shininess: 25, color:0x666666});
Thanks very much.