¿Qué es un archivo GLB? El formato moderno de modelos 3D
Archivos GLB: en pocas palabras
Un archivo GLB es un modelo 3D empaquetado para su distribución. Es un formato contenedor binario para escenas y modelos 3D, definido por el Khronos Group como parte de la especificación glTF 2.0. El nombre significa GL Transmission Format Binary (formato de transmisión GL binario), y esa parte «binaria» es la que marca toda la diferencia en comparación con su hermano, GLTF. Mientras que un archivo .gltf estándar es un archivo de texto JSON legible por humanos que apunta a recursos externos como texturas y geometría, un archivo .glb lo empaqueta todo en un único y ordenado paquete. El descriptor JSON, la geometría binaria y las texturas incrustadas están todos ahí, en un solo archivo autocontenido. Este diseño de archivo único es exactamente la razón por la que GLB se convirtió en el estándar para distribuir contenido 3D en la web, en aplicaciones de RA y en los motores de juego modernos. Para poner el tamaño en perspectiva: un modelo de producto de complejidad media con texturas PBR podría pesar alrededor de 4-8 MB como GLB. El paquete equivalente de OBJ + MTL + PNG podría fácilmente repartirse en una docena de archivos que suman 15 MB o más, sin garantía de que cada archivo llegue intacto durante la transferencia. Khronos publicó la especificación glTF 2.0 en junio de 2017, y el apoyo de la industria llegó rápidamente. Hoy en día, GLB es compatible de forma nativa en todos los lugares que importan: el Visor 3D de Windows 11, Quick Look de Apple, model-viewer de Google, Babylon.js, Three.js, Unity, Unreal Engine, Blender y docenas más. Se ha convertido en el JPEG del 3D. Puede que no sea perfecto para todos los flujos de trabajo, pero es universalmente legible.
La estructura interna de un archivo GLB
Para entender las fortalezas de GLB y sus ocasionales peculiaridades al convertirlo, tienes que ver cómo está construido. Es una estructura simple e ingeniosa. Cada GLB comienza con una cabecera de 12 bytes que contiene tres cosas: un número «mágico» que forma la palabra «glTF» en ASCII (0x46546C67), el número de versión (actualmente 2) y la longitud total del archivo en bytes. Después de esa cabecera, el archivo se organiza en uno o más fragmentos (chunks). El fragmento 0 es siempre el fragmento JSON. Este es el plano de tu escena 3D, que contiene el grafo de la escena (nodos, mallas, materiales, cámaras, animaciones y esqueletos), todo descrito en el esquema de glTF. El fragmento 1 es el búfer binario. Almacena los datos pesados: datos de geometría en bruto como posiciones de vértices, normales, coordenadas UV, pesos de huesos y fotogramas clave de animación. Todo está empaquetado de la forma más compacta posible en un blob binario. Las texturas también pueden incrustarse en este fragmento, almacenadas como datos PNG o JPEG, y referenciadas por el plano JSON. Esta arquitectura significa que un GLB bien formado siempre está completo. Si alguien te envía un GLB y se abre, sabes con certeza que todos los datos están presentes. Se acabó eso de buscar archivos de textura perdidos o arreglar rutas relativas rotas. Es un gran avance respecto a los formatos más antiguos. La especificación GLB actualmente solo admite un único fragmento de búfer binario. Para escenas complejas con muchas texturas, esto puede crear un único blob grande, que es menos eficiente para la transmisión progresiva que los formatos diseñados específicamente para ello, como 3D Tiles.
GLB frente a GLTF y otros formatos 3D
El panorama de los formatos 3D está abarrotado. Aquí te explicamos cómo se compara GLB con los otros formatos que es más probable que te encuentres. **GLTF (.gltf):** Esta es la versión basada en texto que utiliza la misma especificación glTF. Usa GLTF cuando necesites editar a mano el descriptor de la escena o si tu flujo de trabajo procesa las texturas y la geometría por separado. Para todo lo demás, especialmente para la distribución, usa GLB por su portabilidad. **FBX (.fbx):** El formato propietario de Autodesk ha dominado durante mucho tiempo los flujos de producción de videojuegos. FBX es potente y maneja bien rigs complejos, blend shapes y animaciones con múltiples tomas. Pero es un formato binario cerrado sin una especificación pública, lo que provoca problemas de compatibilidad exasperantes entre versiones de software. GLB es la alternativa abierta y moderna. Aunque su soporte de animación es sólido, no está tan probado en el campo de batalla para los rigs de personajes más complejos que se encuentran en los juegos AAA. **OBJ (.obj):** Un auténtico veterano, que data de principios de los 90. OBJ es simple, almacenando solo geometría estática y materiales básicos. No tiene animación, ni materiales PBR modernos, ni jerarquía de escena. Está bien para un simple intercambio de mallas, pero GLB lo ha reemplazado por completo para la distribución en la web. **USD / USDZ (.usdz):** Este es el formato de RA preferido de Apple, construido sobre la Descripción Universal de Escenas de Pixar. Un USDZ es un archivo ZIP que contiene archivos USD y texturas. Funciona muy bien dentro del ecosistema de Apple, pero tiene un soporte limitado fuera de él. La mayoría de los flujos de trabajo de RA acaban creando tanto un GLB (para Android/web) como un USDZ (para iOS). **STL (.stl):** Este formato es para la impresión 3D, y punto. Solo almacena geometría triangular en bruto, sin color ni textura. No compite con GLB para ningún tipo de renderizado visual. Para cualquier cosa en la web (configuradores de productos, RA para comercio electrónico, experiencias WebXR), GLB debería ser tu elección por defecto. Es la herramienta correcta para este trabajo.
¿Dónde se utilizan realmente los archivos GLB?
Entonces, ¿dónde ves los archivos GLB en el mundo real? Se han convertido en la columna vertebral del 3D en la web y en la RA. **Visualización de productos en comercio electrónico:** Shopify fue un catalizador clave aquí, ofreciendo soporte nativo de GLB para medios de productos en 3D/RA. Un comerciante sube un único GLB, y Shopify se encarga del resto, sirviéndolo a través de model-viewer en el escritorio y convirtiéndolo a USDZ sobre la marcha para AR Quick Look en iOS. La clave es el tamaño: la regla es por debajo de 15 MB, pero el objetivo es menos de 4 MB para una carga rápida en móviles. Las texturas deben ser de 2048×2048 píxeles como máximo. **WebXR y 3D en el navegador:** Frameworks como Three.js y Babylon.js tratan a GLB como un ciudadano de primera clase. Cargar un GLB en Three.js son solo unas pocas líneas de código. Como el formato admite materiales PBR (metalness/roughness) de forma nativa, la iluminación se ve realista sin que tengas que escribir shaders personalizados. **Motores de juego:** Tanto Unity como Unreal Engine 5 han adoptado GLB. Unity los importa a través de paquetes como GLTF Fast, mientras que el pipeline datasmith de Unreal ahora incluye la importación nativa de GLB. Godot 4 fue aún más lejos, adoptando GLTF/GLB como su formato principal de intercambio de escenas. **Gemelos digitales y visualización industrial:** Plataformas como Autodesk Tandem y Bentley iTwin usan GLB para llevar enormes modelos de edificios e infraestructuras al navegador sin necesidad de plugins. El plano completo de una planta de un edificio, convertido desde un formato como IFC, se vuelve visible en cualquier dispositivo. **Aplicaciones de realidad aumentada:** En Android, el Scene Viewer de Google se puede lanzar directamente con una URL que apunte a un archivo GLB. Reality Composer de Apple también acepta GLB, lo que lo convierte en un formato de origen multiplataforma viable. El único lugar donde GLB no es la estrella es en los efectos visuales de alta gama para cine, donde formatos como USD, Alembic y OpenEXR siguen siendo necesarios por su soporte más profundo de superficies de subdivisión, volúmenes y datos complejos de composición.
Convertir desde y hacia GLB con CocoConvert
CocoConvert simplifica las conversiones más comunes de GLB. Puedes hacerlo directamente en tu navegador, sin necesidad de instalar Blender o ejecutar un script de Python. **Convertir GLTF a GLB:** Este es el camino más fácil. Sube tu .gltf, su archivo .bin y todas tus texturas de una sola vez. CocoConvert los empaquetará en un único y limpio archivo .glb, conservando perfectamente los materiales, las animaciones y la jerarquía de la escena. **Convertir OBJ a GLB:** Sube el .obj y su archivo .mtl juntos. CocoConvert lee las definiciones de material y las mapea al modelo PBR de glTF. Los colores difusos simples y las texturas se convierten sin problemas. Una advertencia: los materiales con un alto componente especular de los archivos OBJ antiguos a menudo no se traducen bien al modelo moderno de metalness/roughness. Es posible que obtengas superficies más brillantes o más mates de lo que esperas. Para un trabajo de producción, obtendrás mejores resultados ajustando manualmente los materiales en el shader Principled BSDF de Blender después de la importación. **Convertir FBX a GLB:** Esto puede ser complicado. Cualquiera que haya luchado con la compatibilidad de FBX conoce el suplicio. Aunque nuestro conversor funciona para muchos archivos, los rigs de personajes complejos con blend shapes o extensiones propietarias de Autodesk pueden no convertirse por completo. Si tu FBX tiene múltiples tomas de animación, CocoConvert actualmente solo exporta la predeterminada. Para una animación de personaje a prueba de fallos, tu mejor opción es importar el FBX a Blender y luego exportarlo manualmente a GLB. Esto te da un control total sobre el rig y las animaciones. **Convertir GLB a otros formatos:** CocoConvert puede desempaquetar un GLB de nuevo a OBJ (geometría estática y materiales básicos) o STL (solo geometría, para impresión 3D). También puede convertir un GLB de nuevo a su formato de texto GLTF desempaquetado. La conversión de GLB a FBX no es compatible actualmente. Este es un problema genuinamente difícil porque sus sistemas de materiales y animación son muy diferentes, y ninguna herramienta automatizada lo hace bien de manera consistente. Para cualquier conversión, un poco de organización es de gran ayuda. Nombra tus texturas con claridad, evita los espacios en los nombres de archivo y asegúrate de que la geometría de tu modelo de origen esté limpia antes de empezar.
Optimización de archivos GLB para el rendimiento web
Un archivo GLB precioso salido de tu aplicación 3D puede poner de rodillas a un navegador si no está optimizado para la web. Para preparar un archivo para su distribución, hay que abordarlo desde tres frentes: complejidad de la geometría, compresión de texturas y tamaño total del archivo. **Geometría:** Tu objetivo es usar la menor cantidad de polígonos posible. Para un modelo de producto típico de comercio electrónico, apunta a menos de 100,000 triángulos. Una taza de café no necesita 500,000 polígonos. Usa el modificador Decimate de Blender (Mesh > Modifiers > Add Modifier > Decimate) para reducir drásticamente el recuento de polígonos. Un ratio de Collapse entre 0.1 y 0.3 a menudo reduce los triángulos en un 70-90% sin apenas pérdida visible de calidad a distancias de visualización normales. **Compresión de texturas:** Los GLB estándar incrustan texturas como JPEG o PNG. Eso no es suficiente para la web. Usar texturas KTX2 con compresión Basis Universal (a través de la extensión EXT_texture_basisu) es un punto de inflexión. Puede reducir la memoria de textura en la GPU entre 4 y 8 veces y permite que la GPU las descomprima directamente, ahorrando ciclos de CPU. La herramienta de línea de comandos glTF-transform es esencial para esto: `gltf-transform etc input.glb output.glb --slots "baseColor,normal"`. **Compresión de malla Draco:** Este algoritmo de Google, aplicado a través de la extensión KHR_draco_mesh_compression, reduce los datos de geometría en un 60-80%. Tanto Three.js como Babylon.js lo soportan. De nuevo, glTF-transform es tu aliado: `gltf-transform draco input.glb output.glb`. **Tamaños objetivo prácticos:** Apunta a menos de 1 MB para un modelo simple, 1-5 MB para un producto detallado con texturas, y 5-15 MB para escenas complejas. Si superas los 15 MB, es el momento de plantearse dividir la escena o usar mallas con nivel de detalle (level-of-detail). CocoConvert aplica algunas optimizaciones básicas, but para un rendimiento de nivel de producción real, necesitas el control detallado de una herramienta como la CLI de glTF-transform o el editor de escritorio Gestaltor.
Cómo abrir e inspeccionar archivos GLB sin software especial
Una de las mejores cosas de GLB es que rara vez necesitas instalar software especial solo para ver qué hay dentro. **Windows 11:** Simplemente haz doble clic en un archivo .glb. Se abre en la aplicación Visor 3D integrada, donde puedes rotar, hacer zoom e inspeccionar el modelo. Windows 10 también tiene esto, a través de la aplicación Visor 3D de la Microsoft Store. **macOS e iOS:** Los archivos GLB funcionan con Quick Look. Selecciona el archivo en el Finder y pulsa la barra espaciadora. En un iPhone o iPad, tocar un GLB en Archivos o Safari lo abre en Quick Look, con un botón para colocarlo instantáneamente en tu habitación usando RA. **Visores en línea:** El visor oficial de muestras de glTF en https://sandbox.babylonjs.com y https://gltf.report de Don McCurdy son indispensables. Ambos son gratuitos y se ejecutan en tu navegador. Honestamente, gltf.report debería ser tu primera parada para la depuración. Te da un desglose completo (recuento de polígonos, tamaños de textura, llamadas de dibujado y errores de validación) sin tener que subir tu archivo. Es pura magia del lado del cliente. **VS Code:** Si eres desarrollador, la extensión Cesium glTF Tools es un imprescindible. Te permite previsualizar un GLB y ver el descriptor de escena JSON en bruto uno al lado del otro, lo cual es perfecto para depurar problemas de conversión. **Blender:** Por supuesto, siempre puedes importar un GLB directamente a Blender a través de File > Import > glTF 2.0 (.glb/.gltf). Blender 3.3 y posteriores tienen un soporte excelente. Una vez importado, puedes examinar los materiales, comprobar la jerarquía de la escena y volver a exportar con nuevos ajustes. Si un archivo GLB no se abre en ninguna de estas opciones, suele ser un problema sencillo: la descarga fue incompleta, el archivo contiene extensiones no estándar o las texturas internas usan un formato como KTX2 que el visor no soporta. El informe de validación de gltf.report casi siempre te dirá exactamente cuál es el problema.