the decal are applying way too quickly on it, but when I am adding my model its taking way too much time. Is it because of the mapping on the modal or something else?
If not is there a way to compress the quality within threejs itself?
models should be compressed befor using them on the web. typically you would simplify it first, reduce vertex count, flatten surfaces, remove duplicate points etc. blender has lots of tools for that. then you’d use compression, draco for instance, but the model will just unfold again so that’s not what matters here. concentrate on the number of vertices.
i doubt you will get good results with automatic reduce, not to mention that you’ll likely freeze the tab for a while doing the operation. doing this by code code, in javascript, on the single cpu thread, wouldn’t recommend …
But I do agree with what @drcmda writes above. It’s better to simplify the model offline, otherwise you’re downloading a larger model than necessary, and then halting the loading process to simplify it on each viewer’s device.
Exceptions to that could be something like a user upload, where the user provides a new unknown model, it’s optimized in the webpage, and then the optimized model is saved somewhere.