Change mesh material

In this example, at the beginning I have red box, and then I change it’s material. I’m trying to do the same with custom model in my project (with some mesh of it), but smth goes wrong.
Can it be that my mesh in project is simply not intended for overlaying textures? Or that’s some my mistake?
And, also, is there any way to add texture to the current material (w/o creating new instance)?

The instance of BoxGeometry has texture coordinates which is a precondition for using texture. Your model does probably not have this data. You can verify this by checking if the geometry object has a uv buffer attribute (assuming the loaded model is using BufferGeometry).

Yes, it should be sufficient to just apply the texture to the map property and set Material.needsUpdate to true.

https://jsfiddle.net/kudq314j/

Thanks for answer. It’s true, my model doesn’t have uv attribute. Is it any way to add it to model? (with three.js methods, or “Blender” maybe)

It’s best to do this with Blender.