ТРИ JS DefaultLoadingManager Функция onProgress сначала возвращает неверное количество элементов - PullRequest
0 голосов
/ 01 сентября 2018

Я использовал этот код для расчета процента загрузки:

THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {
        console.error(loaded / total * 100);
};

Достигает около 80%, затем возвращается к 60%, затем достигает 90%, а затем возвращается к 80%.

После некоторой отладки я обнаружил, что общее количество элементов сначала составляет 25, а затем увеличивается примерно до 35, а после этого достигает 52.

Это увеличение связано с JSONLoader. Я загружаю некоторые объекты, и у этих объектов есть материалы в виде изображений, поэтому функция onProgress добавляет эти изображения к общему количеству загружаемых элементов.

Я хочу знать, как узнать реальное количество загружаемых элементов (52) в начале. Если это невозможно, как решить проблему возврата с 80% до 60%?

1 Ответ

0 голосов
/ 01 сентября 2018

Пара вещей, которые вы могли бы сделать:

Вы можете выполнить загрузку один раз, записать результаты и окончательный счет и жестко запрограммировать его для следующего запуска.

или ..

Используйте формат как GLTF со всеми вложенными активами. Тогда вы получите один предмет за модель.

или .. Выполняйте параллельную загрузку всех ваших нагрузок ... не отвечайте на первые несколько onProgress ... и, надеюсь, запишите полное количество элементов, прежде чем вы начнете отображать прогресс ..

или .. создайте индикатор выполнения, который всегда увеличивается на некоторый процент от оставшегося времени, и, возможно, отрегулируйте этот процент, чтобы примерно соответствовать времени загрузки на вашем отдельном компьютере, или измените его динамически, когда вы получите больше информации об оставшихся нагрузках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...