Poor performance and different rendering on mobile

I’m not sure but it seems you are mixing an animation loop with on-demand rendering.

For viewer software, it’s usually best to render only when the scene has changed (except for the case the model has animations). Hence, I suggest you remove the animation loop.

If you want to keep it because of the control’s damping, I recommend you remove the call of:

controls.addEventListener( 'change', render );

Since you already have an animation loop, rendering on demand is not necessary. Otherwise you have duplicated render calls which explains the poor performance.

2 Likes