¿Qué hace exactamente comprimir un archivo GLB?
Comprimir un GLB significa recodificar sus texturas y su geometría para que el mismo modelo ocupe menos bytes. La mayor parte del ahorro viene de las texturas: en los ocho modelos de ejemplo de Khronos que medimos, las imágenes ocupaban la mayor parte de cada archivo que tenía alguna textura. Este compresor de GLB reduce esas imágenes, limpia la geometría y escribe un .glb nuevo, todo en tu navegador.
Un GLB más pequeño carga antes en una página de producto, cabe en los límites de subida de las plataformas y los marketplaces 3D, y usa menos memoria en los móviles. Para conseguirlo no hace falta cambiar nada de la forma, los materiales ni las animaciones del modelo.
En qué se van los bytes de un GLB
Un GLB contiene tres tipos de datos: texturas (las imágenes que envuelven el modelo), geometría (posiciones de los vértices, normales y listas de triángulos) y animación. Las texturas se guardan como archivos de imagen completos dentro del GLB, a menudo PNG de 2048 × 2048, y por eso un modelo de solo unos cientos de triángulos puede pesar 8 MB. Abre tu archivo en el visor GLB para ver su propio desglose antes de comprimirlo.
Limpieza sin pérdida frente a compresión con pérdida
Algunos pasos no cambian nada que se pueda ver: eliminar datos duplicados, descartar los materiales y las texturas que nadie usa, y fusionar los vértices que son exactamente iguales. Los mayores ahorros son con pérdida: texturas más pequeñas, texturas recodificadas como WebP o JPEG, y posiciones de vértices guardadas con menos bits. Con pérdida no significa visiblemente peor, pero es la parte que conviene revisar, y para eso está el selector Antes / Después.
Cómo comprimir un archivo GLB en 3 pasos
Suelta tu .glb o .gltf
Haz clic en Elegir archivo 3D o suelta un .glb en el visor. Si es un .gltf, selecciónalo junto con su .bin y sus texturas, o suelta la carpeta completa; el resultado siempre es un único .glb. El panel muestra cada textura con sus dimensiones, su formato y su peso en bytes.
Elige Web, Compatible o Personalizado
Web genera el archivo más pequeño para navegadores, Compatible mantiene el archivo libre de extensiones nuevas y Personalizado te deja elegir el tamaño, el formato y la calidad de las texturas. La tabla de texturas muestra en qué se convertirá cada una antes de que pulses nada.
Compara y descarga
Pulsa Comprimir GLB. Cuando termine, el visor pasa a Después con la cámara donde la dejaste; pulsa B o usa el selector Antes / Después para comparar y, luego, descarga el .glb comprimido.
Elige un .glb, o un .gltf con sus archivos.
Elige el preajuste según adónde vaya el modelo después.
Compara Antes y Después, y descarga.
Texturas: donde se va la mayor parte de los bytes
Cada textura de un GLB es un archivo de imagen completo, y la GPU la descomprime en píxeles sin procesar en cuanto se muestra el modelo: una textura de 2048 × 2048 ocupa unos 16 MB de memoria gráfica sin contar los mipmaps, por pequeño que fuera su PNG. Así que, cuando comprimes un GLB, los ajustes de las texturas deciden tanto lo que pesa la descarga como lo pesado que resulta mostrar el modelo.
Redimensionar texturas: ¿4096, 2048, 1024 o 512?
Reducir a la mitad el ancho y el alto de una textura deja una cuarta parte de los píxeles. En una página web, donde un modelo suele ocupar solo una parte de la pantalla, 1024 px bastan para la mayoría de los productos; vale la pena mantener 2048 px en las vistas protagonistas y los primeros planos, y 512 px van bien para objetos secundarios pequeños. Este compresor de GLB solo reduce las texturas, nunca las amplía, y mantiene sus proporciones. Para redimensionar una sola textura a mano, usa el redimensionador de imágenes.
WebP, PNG o JPEG dentro de un GLB
PNG y JPEG forman parte del propio glTF, así que cualquier aplicación que abra archivos GLB los lee. WebP suele dar los archivos más pequeños, pero un GLB que lo usa declara la extensión EXT_texture_webp, y la aplicación que lo abra tiene que admitirla. JPEG no puede guardar transparencia, así que esta herramienta mantiene una textura como PNG siempre que sus píxeles no sean totalmente opacos. Para comparar los formatos en general, consulta PNG a WebP.
Los mapas de normales necesitan una compresión más suave
Un mapa de normales guarda direcciones de la superficie en sus colores, y los artefactos en bloques que deja la compresión con pérdida aparecen como errores de iluminación en lugar de como ruido de color. Los dos preajustes dan a los mapas de normales un mínimo de calidad más alto (0,9). WebP y JPEG, además, guardan el color a menor resolución, lo que resta algo de precisión a los mapas de normales y a las texturas que empaquetan rugosidad, metalicidad y oclusión en canales separados. Si esa precisión importa, elige Personalizado y mantén el formato original.
Texturas con transparencia
Las hojas, las calcomanías y el cristal suelen depender de un canal alfa. WebP lo conserva; JPEG no puede, así que una textura transparente que iba a pasar a JPEG se guarda como PNG. En nuestras mediciones, Lantern y ToyCar conservaron una o dos texturas como PNG por este motivo.
Compresión de geometría: meshopt, cuantización y Draco
La geometría suele ser la parte más pequeña de un GLB, pero en mallas densas, escaneos y personajes animados puede ser la mayor parte del archivo. El preajuste Web la comprime con meshopt; los demás preajustes dejan la codificación como está y solo la limpian.
Qué hace la compresión meshopt
meshopt primero reordena los vértices y los triángulos para que los datos vecinos queden juntos; después guarda las posiciones, las normales y las coordenadas de textura como enteros pequeños en lugar de números de coma flotante de 32 bits (cuantización, declarada como KHR_mesh_quantization) y, por último, empaqueta el resultado con EXT_meshopt_compression. Se decodifica muy rápido en el navegador, y three.js, model-viewer y Babylon.js lo leen.
Fusionar vértices y eliminar duplicados
Los exportadores suelen escribir el mismo vértice varias veces, duplicar accessors enteros o dejar materiales y texturas que nada usa. Fusionar los vértices idénticos y eliminar los datos sin usar no tiene pérdida y se aplica en todos los preajustes; solo con eso, el pequeño modelo Fox se redujo un 32%.
Por qué los modelos Draco conservan su geometría
Draco es otra extensión de compresión de geometría, a menudo más compacta que meshopt. Volver a escribir Draco requiere su codificador, y decodificar la geometría para guardarla sin Draco hizo que una malla de prueba fuera de 4 a 13 veces más grande. Por eso, cuando un GLB ya usa Draco, esta herramienta solo recodifica sus texturas y deja el resto de los bytes, geometría Draco incluida, exactamente como estaban. La tarjeta del resultado indica cuándo ha ocurrido.
¿Qué preajuste elegir?
Antes de comprimir tu GLB, piensa adónde va a ir el modelo después: de eso depende el preajuste adecuado, porque los ajustes que dan los archivos más pequeños se apoyan en extensiones de glTF que no todas las aplicaciones leen. La nota bajo los preajustes indica las extensiones que añadirán los ajustes actuales.
Para visores web: three.js, model-viewer, Babylon.js
Elige Web. Escala las texturas a 1024 px como máximo, las guarda como WebP y comprime la geometría con meshopt. Los visores que funcionan en el navegador y los motores basados en three.js o Babylon.js leen las tres extensiones que usa, y sus archivos son los más pequeños que genera esta herramienta: entre un 48% y un 98,8% más pequeños con los ejemplos de Khronos.
Para Blender, Unity y visores de escritorio
Elige Compatible. Mantiene las texturas en hasta 2048 px, guarda las opacas como JPEG y las transparentes como PNG, y no añade ninguna extensión. Las herramientas de escritorio y los importadores de los motores de juego admiten WebP y meshopt de forma desigual, así que un archivo sin ellas es la opción segura cuando no controlas el programa que lo va a abrir.
Cuándo usar Personalizado
Usa Personalizado para mantener las texturas a su tamaño original, conservar su formato original en mapas de datos precisos, subir o bajar la calidad, o desactivar meshopt. La tabla de texturas se actualiza a medida que cambias cada ajuste, así que ves lo que va a pasar antes de comprimir.
Resultados reales con modelos de ejemplo de Khronos
Para saber cuánto cabe esperar, usamos esta página para comprimir archivos GLB de la colección Khronos glTF Sample Assets: ocho originales, en Chrome y en un ordenador de escritorio. Con el preajuste Web, los ocho archivos quedaron de media un 86% más pequeños, y un 96% en la mediana; el mayor ahorro fue el de Avocado, que pasó de 7,73 MB a 0,09 MB porque sus tres texturas PNG de 2048 × 2048 eran casi todo el archivo. Cada modelo tardó alrededor de un segundo.
Compatible ahorra menos, ya que mantiene las texturas a 2048 px y evita WebP, pero aun así redujo cuatro de los ocho modelos entre un 83% y un 93%. Los modelos que menos se redujeron son los que tienen más geometría (ToyCar tiene unos 109.000 triángulos) o texturas con transparencia, que se quedan en PNG.
Medido: original, Web y Compatible
| Modelo | Original | Preajuste Web | Preajuste Compatible |
|---|---|---|---|
| Avocado | 7,73 MB | 0,09 MB (−98,8%) | 0,57 MB (−92,6%) |
| WaterBottle | 8,55 MB | 0,12 MB (−98,6%) | 0,88 MB (−89,7%) |
| BoomBox | 10,12 MB | 0,22 MB (−97,8%) | 1,12 MB (−89,0%) |
| Corset | 12,87 MB | 0,51 MB (−96,0%) | 2,15 MB (−83,3%) |
| Lantern | 9,12 MB | 0,36 MB (−96,0%) | 5,49 MB (−39,8%) |
| SheenChair | 3,93 MB | 0,97 MB (−75,3%) | 1,72 MB (−56,3%) |
| ToyCar | 5,17 MB | 1,30 MB (−74,9%) | 3,92 MB (−24,2%) |
| Fox | 0,16 MB | 0,08 MB (−48,0%) | 0,11 MB (−31,9%) |
¿La compresión estropeará mi modelo?
Comprimir un GLB cambia cómo se guardan los datos, no lo que es el modelo. Las mallas, los materiales, los nombres de los nodos, las animaciones y el resto de funciones de glTF se conservan; lo que conviene revisar son las extensiones que requiere el nuevo archivo y cómo se ven las texturas de cerca.
Extensiones que puede requerir el resultado
El preajuste Web puede añadir EXT_texture_webp, EXT_meshopt_compression y KHR_mesh_quantization, marcadas como obligatorias para que una aplicación que no sepa leerlas lo indique en lugar de mostrar un modelo roto. Compatible no añade ninguna. Un GLB que ya usaba otras extensiones las conserva; si esta herramienta no reconoce alguna, pasa a recodificar solo las texturas, para no reescribir nada que no entienda.
Animaciones, esqueletos y objetivos morph
Las animaciones, los personajes con esqueleto y los objetivos morph se mantienen tras la compresión. meshopt también comprime los fotogramas clave de las animaciones, y la cuantización conserva precisión suficiente para modelos de tamaño normal; en escenas muy grandes o en modelos de ingeniería medidos en milímetros, compara el resultado con la estructura alámbrica activada o desactiva meshopt en Personalizado.
Las texturas KTX2 se quedan como están
Las texturas que ya están guardadas como KTX2 (KHR_texture_basisu) vienen comprimidas para la GPU y ocupan poca memoria. Esta herramienta las mantiene sin cambios en lugar de volver a convertirlas en imágenes normales.
Por qué tu GLB sigue pesando mucho después de comprimirlo
Si comprimes un GLB y el ahorro es pequeño, el panel suele mostrar el motivo. Puede que el archivo ya esté comprimido: las texturas que ya son imágenes WebP o JPEG pequeñas rara vez se reducen más, y la herramienta conserva la textura original siempre que recodificarla no la haga más pequeña. Si el resultado no fuera más pequeño en absoluto, no hay nada que descargar, y es intencionado.
Escaneos densos y fotogrametría
Los objetos escaneados y la fotogrametría suelen tener cientos de miles o millones de triángulos, y entonces es la geometría, no las texturas, la que llena el archivo. meshopt ayuda, pero la solución real es tener menos triángulos: simplifica la malla en un editor 3D, por ejemplo con el modificador Decimate (Diezmar) de Blender, y luego comprime el resultado aquí.
Comprimir un .gltf con archivos externos
Un .gltf guarda su geometría y sus texturas en archivos separados. Selecciónalos todos, o suelta la carpeta, y la herramienta lo empaqueta todo en un único .glb comprimido. Un .gltf que usa Draco tiene que exportarse antes como .glb, porque los datos Draco solo se conservan sin cambios dentro de un GLB.
El equivalente en línea de comandos
Esta página ejecuta en tu navegador la biblioteca de código abierto glTF Transform. Si quieres comprimir muchos archivos dentro de un proceso de compilación, su herramienta de línea de comandos hace un trabajo parecido, por ejemplo gltf-transform optimize input.glb output.glb --compress meshopt --texture-compress webp --texture-size 1024.
Tu modelo nunca sale de tu dispositivo
Muchos compresores de GLB online suben el archivo a un servidor, y algunos limitan cuántos archivos puedes comprimir cada semana. Aquí todo el trabajo se hace en un proceso en segundo plano dentro de la pestaña de tu navegador: el modelo se lee de tu disco, se comprime en memoria y se guarda directamente como descarga. Eso importa con productos sin lanzar, trabajos para clientes y cualquier cosa sujeta a un acuerdo de confidencialidad. Cierra la pestaña y no queda nada. Si buscas otras herramientas que funcionen igual, consulta todas nuestras herramientas gratuitas.