Может быть, если это данные вершины, которые делают файл таким большим.В этом случае вы можете использовать библиотеку сжатия DRACO, чтобы уменьшить размер еще больше.
Во-первых, чтобы протестировать компрессор, вы можете запустить
npx gltf-pipeline -i original.glb -d --draco.compressionLevel 10 -o compressed.glb
(вам нужно иметьтекущая версия node.js, установленная для этого, чтобы работать)
Если данные вершины были причиной того, что файл был таким большим, сжатый файл должен быть значительно меньше исходного.
Теперьвам нужно выполнить некоторые дополнительные шаги для загрузки файла, так как обычный GLTFLoader не поддерживает сжатые DRACO сетки.
По сути, вам необходимо импортировать THREE.DRACOLoader
и Драко-декодер .Наконец, вам нужно сообщить своему GLTFLoader
, что вы знаете, как обрабатывать DRACO-сжатие:
DRACOLoader.setDecoderPath('path/to/draco-decoder');
gltfLoader.setDRACOLoader(new DRACOLoader());
После этого вы можете использовать GLTFLoader, как и раньше.
Единственный недостатокэто связано с тем, что самому декодеру требуются некоторые ресурсы: декодирование не является бесплатным, а сам декодер представляет собой еще 320 КБ данных, которые должны быть загружены браузером.Я думаю, что это все еще стоит, если это сэкономит вам мегабайты меш-данных.