three.js - лаг при загрузке модели

Имеется несколько ply моделей, которые поочередно грузятся и сменяют друг друга. Однако после окончания загрузке при помещении модели на сцену происходит заметный лаг, во время которого зависает просмотр сцены (например, зависает камера).

function loadUpperJaw(number, oldMesh = null) {
    loader.load(`ply/upperJaw${number.toString().padStart(2, '0')}.ply`, function (geometry) {
        console.log(`upper ${number} is loaded`);
        geometry.computeVertexNormals();
        if (oldMesh !== null) {
            scene.remove(oldMesh);
        }
        let mesh = new THREE.Mesh(geometry, material);
        mesh.rotateX(-Math.PI / 2);
        mesh.castShadow = true;
        mesh.receiveShadow = true;
        scene.add(mesh);
        let nextModelIndex = number >= 20 ? 1 : number + 1;
        setTimeout(loadUpperJaw, 500, nextModelIndex, mesh);
    }, function (event) {
        console.log(event);
    }, function (error) {
        console.log(error);
    });
}

loadUpperJaw(1);

Сами модели весят в среднем по 5 МБ. Меня интересует возможно ли избавиться от этого лага, чтобы сцена не зависала и если да, то как?


Ответы (0 шт):