Сжать файлы GLB онлайн

Уменьшайте 3D-модели для веба — текстуры, геометрию и всё остальное — и сравнивайте результат с оригиналом, ничего не загружая на сервер.

🔒 Остаётся на устройстве🖼️ Текстуры в WebP🔍 Сравнение до и после

.glb · .gltf · до 200 МБ · сжимается на этом устройстве, ничего не загружается на сервер

🔒

Ничего не загружается на сервер

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

🔍

Результат виден до скачивания

Переключайтесь между «До» и «После» с той же камерой, при желании с включённым каркасом, и проверяйте каждую текстуру в таблице «до и после».

🧩

Пресеты с учётом совместимости

Web даёт самый маленький файл для браузеров. «Совместимый» не добавляет расширений glTF, поэтому результат откроется везде, где открывался оригинал.

♾️

Бесплатно и без недельных лимитов

Без регистрации, кредитов и водяных знаков. Файлы до 200 МБ на компьютере и до 50 МБ на телефоне.

Что на самом деле делает сжатие GLB?

Сжать GLB — значит перекодировать его текстуры и геометрию, чтобы та же модель занимала меньше байтов. Основную экономию дают текстуры: в восьми примерах моделей Khronos, которые мы измерили, изображения составляли основную часть каждого файла, где текстуры вообще были. Этот компрессор GLB уменьшает эти изображения, очищает геометрию и записывает новый .glb — всё в вашем браузере.

Уменьшенный GLB быстрее загружается на странице товара, укладывается в лимиты загрузки 3D-платформ и маркетплейсов и расходует меньше памяти на телефонах. Форму модели, её материалы и анимации ради этого менять не нужно.

На что уходят байты в GLB

В GLB хранятся три вида данных: текстуры (изображения, натянутые на модель), геометрия (позиции вершин, нормали и списки треугольников) и анимация. Текстуры лежат внутри GLB как полноценные файлы изображений, часто PNG 2048 × 2048, — поэтому модель всего из нескольких сотен треугольников может весить 8 МБ. Откройте файл в просмотрщике GLB, чтобы увидеть его разбивку до сжатия.

Очистка без потерь и сжатие с потерями

Некоторые шаги не меняют ничего видимого: удаление дублирующихся данных, неиспользуемых материалов и текстур, а также слияние полностью совпадающих вершин. Гораздо больше экономят шаги с потерями: уменьшение текстур, перекодирование их в WebP или JPEG и хранение позиций вершин с меньшим числом бит. «С потерями» не значит «заметно хуже», но именно эту часть стоит проверить — для этого и нужен переключатель «До / После».

ОригиналAvocado.glb · 7.73 MBСжатый0.09 MB−98.8%Убрано: текстуры меньше (WebP), геометрия упакованаТекстурыГеометрия
Avocado до и после пресета Web: бирюзовая полоса — те 98,8%, которые убрало сжатие.

Как сжать файл GLB за 3 шага

1

Перетащите .glb или .gltf

Нажмите «Выбрать 3D-файл» или перетащите .glb в окно просмотра. Для .gltf выберите его вместе с файлом .bin и текстурами или перетащите всю папку; на выходе всегда получается один .glb. На панели перечислены все текстуры с их размером, форматом и объёмом в байтах.

2

Выберите Web, «Совместимый» или «Свой»

Web даёт самый маленький файл для браузеров, «Совместимый» не добавляет в файл новых расширений, а «Свой» позволяет выбрать размер, формат и качество текстур. Таблица текстур показывает, во что превратится каждая текстура, ещё до того, как вы что-либо нажмёте.

3

Сравните и скачайте

Нажмите «Сжать GLB». Когда сжатие закончится, окно просмотра переключится на «После», а камера останется там, где вы её оставили; нажмите B или воспользуйтесь переключателем «До / После», чтобы сравнить, а затем скачайте сжатый .glb.

.glbВыбрать 3D-файл
1

Выберите .glb или .gltf вместе с его файлами.

WebСовместимыйСвой
2

Выберите пресет в зависимости от того, куда модель пойдёт дальше.

ДоПослеB
3

Сравните «До» и «После», затем скачайте файл.

Текстуры: куда уходит большая часть байтов

Каждая текстура в GLB — это полноценный файл изображения, и когда модель выводится на экран, GPU распаковывает его в несжатые пиксели: текстура 2048 × 2048 занимает около 16 МБ видеопамяти без учёта мипмапов, каким бы маленьким ни был её PNG. Поэтому, когда вы сжимаете GLB, настройки текстур определяют и объём скачивания, и то, насколько тяжело модель отображать.

Размер текстур: 4096, 2048, 1024 или 512?

Если уменьшить ширину и высоту текстуры вдвое, останется четверть пикселей. На веб-странице, где модель обычно занимает часть экрана, для большинства товаров достаточно 1024 px; 2048 px стоит оставить для главных ракурсов и крупных планов, а 512 px подойдёт для мелких предметов. Этот компрессор GLB только уменьшает текстуры, никогда не увеличивает их и сохраняет пропорции. Чтобы вручную изменить размер отдельной текстуры, воспользуйтесь инструментом изменения размера изображений.

WebP, PNG или JPEG внутри GLB

PNG и JPEG входят в сам стандарт glTF, поэтому их читает любое приложение, которое открывает файлы GLB. WebP обычно даёт самые маленькие файлы, но GLB с такими текстурами объявляет расширение EXT_texture_webp, и приложение, которое его открывает, должно это расширение поддерживать. JPEG не хранит прозрачность, поэтому этот инструмент оставляет текстуру в PNG, если её пиксели не полностью непрозрачны. О компромиссах между форматами в целом читайте на странице PNG в WebP.

Картам нормалей нужно более бережное сжатие

Карта нормалей хранит в цветах направления поверхности, и блочные артефакты сжатия с потерями проявляются как ошибки освещения, а не как цветовой шум. Оба пресета задают для карт нормалей более высокий минимум качества (0,9). Кроме того, WebP и JPEG хранят цвет с пониженным разрешением, а это снижает точность карт нормалей и текстур, в которых шероховатость, металличность и затенение упакованы в отдельные каналы. Если эта точность важна, выберите «Свой» и сохраните исходный формат.

Текстуры с прозрачностью

Листья, декали и стекло часто опираются на альфа-канал. WebP его сохраняет, а JPEG не умеет, поэтому прозрачная текстура, которая должна была стать JPEG, сохраняется в PNG. В наших замерах у Lantern и ToyCar по этой причине одна-две текстуры остались в PNG.

4096 px64 MB2048 px16 MB1024 px4 MB512 px1 MBВидеопамять на текстуру после декодированияRGBA, 4 байта на пиксель, без мипмапов; файл на диске гораздо меньше, а память — нет.
Каждое уменьшение текстуры вдвое оставляет четверть пикселей и четверть видеопамяти.
Часть glTFПрозрачностьТипичный размерфототекстурыPNGДаДаJPEGДаНетWebPнужен EXT_texture_webpДа
PNG и JPEG входят в сам glTF; для WebP нужно расширение, зато обычно он даёт самый маленький файл.

Сжатие геометрии: meshopt, квантование и Draco

Обычно геометрия занимает меньшую часть GLB, но в плотных мешах, сканах и анимированных персонажах на неё может приходиться большая часть файла. Пресет Web сжимает её с помощью meshopt; остальные пресеты не меняют способ кодирования и только очищают её.

Что делает сжатие meshopt

Сначала meshopt переупорядочивает вершины и треугольники так, чтобы соседние данные лежали рядом, затем хранит позиции, нормали и текстурные координаты в виде небольших целых чисел вместо 32-битных чисел с плавающей точкой (квантование, объявляется как KHR_mesh_quantization) и, наконец, упаковывает результат с помощью EXT_meshopt_compression. В браузере такие данные декодируются очень быстро, и их читают three.js, model-viewer и Babylon.js.

Слияние вершин и удаление дубликатов

Экспортёры часто записывают одну и ту же вершину несколько раз, дублируют целые аксессоры или оставляют материалы и текстуры, которые нигде не используются. Слияние одинаковых вершин и удаление неиспользуемых данных проходят без потерь и выполняются в каждом пресете; одно это уменьшило небольшую модель Fox на 32%.

Почему у моделей с Draco геометрия не меняется

Draco — ещё одно расширение для сжатия геометрии, часто более плотное, чем meshopt. Чтобы снова записать Draco, нужен его кодировщик, а если декодировать геометрию и сохранить её без Draco, тестовый меш вырастал в 4–13 раз. Поэтому, если GLB уже использует Draco, этот инструмент перекодирует только текстуры, а все остальные байты, включая геометрию Draco, оставляет в точности такими, какими они были. Карточка результата сообщает, когда это произошло.

float3232-битные позиции0 1 2 → 2 0 1Перестановка вершинint16Квантование в целыеmeshoptУпаковкаfloat32Декодируется в браузере
meshopt переупорядочивает и квантует геометрию перед упаковкой, а браузер распаковывает её при загрузке.

Какой пресет выбрать?

Прежде чем сжимать GLB, подумайте, куда модель пойдёт дальше: от этого зависит правильный пресет, потому что самые компактные настройки опираются на расширения glTF, которые читает не каждое приложение. В подсказке под пресетами перечислены расширения, которые добавят текущие настройки.

Для веб-просмотрщиков: three.js, model-viewer, Babylon.js

Выберите Web. Он уменьшает текстуры максимум до 1024 px, сохраняет их в WebP и сжимает геометрию с помощью meshopt. Браузерные просмотрщики и движки на основе three.js или Babylon.js читают все три расширения, которые он использует, а файлы получаются самыми маленькими из всего, что делает этот инструмент: на примерах Khronos — меньше на 48–98,8%.

Для Blender, Unity и настольных просмотрщиков

Выберите «Совместимый». Он сохраняет текстуры размером до 2048 px, записывает непрозрачные в JPEG, а прозрачные в PNG и вообще не добавляет расширений. Настольные программы и импортёры игровых движков поддерживают WebP и meshopt неравномерно, поэтому файл без них — надёжный выбор, когда вы не знаете, какая программа будет открывать его на другой стороне.

Когда выбирать «Свой»

Выберите «Свой», чтобы оставить текстуры в исходном размере, сохранить исходный формат для точных карт данных, повысить или понизить качество или отключить meshopt. Таблица текстур обновляется при каждом изменении настройки, так что вы видите, что произойдёт, ещё до сжатия.

Куда модель пойдёт дальше?Веб-страница илибраузерный просмотрщикWebBlender, Unity илипрограмма на ПКСовместимыйНужен точныйконтроль текстурСвой
Пресет зависит от программы, которая будет открывать файл.

Реальные результаты на примерах моделей Khronos

Чтобы понять, на что можно рассчитывать, мы сжали на этой странице файлы GLB из коллекции Khronos glTF Sample Assets: восемь оригиналов, в Chrome на настольном компьютере. С пресетом Web восемь файлов стали в среднем на 86% меньше, а по медиане — на 96%; самую большую экономию показал Avocado — с 7,73 МБ до 0,09 МБ, потому что три его текстуры PNG 2048 × 2048 составляли почти весь файл. На каждую модель ушло около секунды.

«Совместимый» экономит меньше, поскольку сохраняет текстуры в 2048 px и не использует WebP, но и он уменьшил четыре из восьми моделей на 83–93%. Меньше всего сэкономили модели с самой объёмной геометрией (в ToyCar около 109 000 треугольников) или с прозрачными текстурами, которые остаются в PNG.

Замеры: оригинал, Web и «Совместимый»

МодельОригиналПресет WebПресет «Совместимый»
Avocado7,73 МБ0,09 МБ (−98,8%)0,57 МБ (−92,6%)
WaterBottle8,55 МБ0,12 МБ (−98,6%)0,88 МБ (−89,7%)
BoomBox10,12 МБ0,22 МБ (−97,8%)1,12 МБ (−89,0%)
Corset12,87 МБ0,51 МБ (−96,0%)2,15 МБ (−83,3%)
Lantern9,12 МБ0,36 МБ (−96,0%)5,49 МБ (−39,8%)
SheenChair3,93 МБ0,97 МБ (−75,3%)1,72 МБ (−56,3%)
ToyCar5,17 МБ1,30 МБ (−74,9%)3,92 МБ (−24,2%)
Fox0,16 МБ0,08 МБ (−48,0%)0,11 МБ (−31,9%)
Avocado7.73 MB0.09 MB0.57 MBWaterBottle8.55 MB0.12 MB0.88 MBBoomBox10.12 MB0.22 MB1.12 MBCorset12.87 MB0.51 MB2.15 MBLantern9.12 MB0.36 MB5.49 MBSheenChair3.93 MB0.97 MB1.72 MBToyCar5.17 MB1.30 MB3.92 MBFox0.16 MB0.08 MB0.11 MBОригиналПресет WebПресет «Совместимый»
Восемь примеров моделей Khronos, измеренных на этой странице: исходный размер, пресет Web и пресет «Совместимый».

Не сломает ли сжатие мою модель?

Сжатие GLB меняет способ хранения данных, а не саму модель. Меши, материалы, имена узлов, анимации и другие возможности glTF переносятся без изменений; проверить стоит лишь расширения, которые требует новый файл, и то, как текстуры выглядят вблизи.

Расширения, которые может потребовать результат

Пресет Web может добавить EXT_texture_webp, EXT_meshopt_compression и KHR_mesh_quantization с пометкой «обязательное», чтобы приложение, которое не умеет их читать, сообщило об этом, а не показало сломанную модель. «Совместимый» не добавляет ни одного. Если GLB уже использовал другие расширения, они сохраняются; если инструмент не знает какое-то из них, он переходит к перекодированию одних только текстур, чтобы не переписывать то, чего не понимает.

Анимации, скины и цели морфинга

Анимации, персонажи со скиннингом и цели морфинга переживают сжатие. meshopt сжимает и ключевые кадры анимации, а квантование сохраняет достаточную точность для моделей обычного размера; в очень больших сценах или инженерных моделях, где размеры заданы в миллиметрах, сравните результат с включённым каркасом или отключите meshopt в пресете «Свой».

Текстуры KTX2 остаются как есть

Текстуры, которые уже хранятся в KTX2 (KHR_texture_basisu), сжаты для GPU и занимают мало видеопамяти. Этот инструмент оставляет их без изменений, а не превращает обратно в обычные изображения.

WebСовместимыйОткрывается без расширенийEXT_texture_webpEXT_meshopt_compressionKHR_mesh_quantizationДобавляет этот пресетНе используетсяthree.js, model-viewer и Babylon.js читают все три
Расширения, которые каждый пресет может добавить в сжатый файл.

Почему GLB остаётся большим после сжатия

Если вы сжали GLB, а экономия оказалась небольшой, панель обычно показывает почему. Возможно, файл уже сжат: текстуры, которые и так являются небольшими изображениями WebP или JPEG, редко уменьшаются дальше, а инструмент оставляет исходную текстуру, если перекодирование не делает её меньше. Если результат вообще не получается меньше, скачивать нечего — так задумано.

Плотные сканы и фотограмметрия

Отсканированные объекты и модели из фотограмметрии часто содержат сотни тысяч или миллионы треугольников, и тогда файл заполняет геометрия, а не текстуры. meshopt помогает, но настоящее решение — меньше треугольников: упростите меш в 3D-редакторе, например модификатором Decimate в Blender, а затем сожмите результат здесь.

Сжатие .gltf с внешними файлами

Файл .gltf хранит геометрию и текстуры в отдельных файлах. Выберите их все или перетащите папку, и инструмент упакует всё в один сжатый .glb. Файл .gltf, использующий Draco, сначала нужно экспортировать в .glb, потому что данные Draco сохраняются без изменений только внутри GLB.

То же самое из командной строки

Эта страница запускает в вашем браузере открытую библиотеку glTF Transform. Если нужно сжимать много файлов в конвейере сборки, её консольная утилита делает похожую работу, например gltf-transform optimize input.glb output.glb --compress meshopt --texture-compress webp --texture-size 1024.

Ваша модель не покидает устройство

Многие онлайн-компрессоры GLB загружают файл на сервер, а некоторые ограничивают число файлов, которые можно сжать за неделю. Здесь вся работа идёт в фоновом потоке внутри вкладки браузера: модель читается с диска, сжимается в памяти и сразу сохраняется обратно как скачанный файл. Это важно для неопубликованных продуктов, клиентских проектов и всего, что подпадает под NDA. Закройте вкладку — и ничего не останется. Другие инструменты, которые работают так же, собраны на странице всех наших бесплатных инструментов.

Сжатие GLB — частые вопросы

Да, он бесплатный: без регистрации, кредитов и недельных лимитов. На компьютере можно сжимать файлы до 200 МБ, на телефоне — до 50 МБ, ведь там память заканчивается быстрее.

Шаги очистки проходят без потерь, а уменьшение текстур, WebP или JPEG и квантование вершин — с потерями. В большинстве моделей разницу трудно заметить, а переключатель «До / После» показывает обе версии с одного ракурса, чтобы вы могли проверить результат перед скачиванием.

Это зависит от того, какую долю файла занимают текстуры. Откройте его в просмотрщике GLB, чтобы увидеть разбивку: модели, где преобладают текстуры, с пресетом Web часто уменьшаются на 90% и больше, а сканы с тяжёлой геометрией — меньше.

Используйте пресет «Совместимый»: он не добавляет расширений glTF, поэтому файл откроется везде, где открывался оригинал. Пресет Web предназначен для браузерных просмотрщиков, таких как three.js, model-viewer и Babylon.js.

Оба сжимают геометрию. Draco часто даёт меши меньшего размера, а meshopt быстрее декодируется и сжимает ещё и анимацию. Этот инструмент записывает meshopt, а если модель уже использует Draco, оставляет её геометрию Draco в точности как есть.

Да. Выберите .gltf вместе с его файлом .bin и текстурами или перетащите папку — на выходе вы получите один сжатый .glb.

Скорее всего, он уже был сжат или состоит в основном из геометрии, а не из текстур. Попробуйте пресет «Свой» с меньшим размером текстур или сначала уменьшите число треугольников в 3D-редакторе.

Нет. Модель сжимается в фоновом потоке внутри вкладки браузера и сохраняется прямо на ваше устройство. На сервер ничего не отправляется.

T

Инженерная команда TinyImagePro

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

О TinyImagePro →