GLB vs glTF: qual é a diferença?
GLB vs glTF é embalagem, não dados: um .gltf é JSON legível com arquivos separados, um .glb empacota tudo em um só. Entregue GLB, edite glTF, converta sem perdas.
- Especificação glTF 2.0 da Khronos
- Tamanhos de arquivo medidos
- Conversão sem perdas
GLB vs glTF: a resposta curta
glTF é o formato aberto do Khronos Group para entregar cenas 3D a apps e à web, e o GLB não é um formato diferente, mas o seu contêiner binário. A especificação define os dois: um arquivo .gltf é JSON (media type model/gltf+json), e um arquivo .glb (model/gltf-binary) envolve esse mesmo JSON mais um buffer binário em um único arquivo.
Então a pergunta GLB vs glTF é sobre embalagem, não qualidade. Malhas, materiais PBR, texturas, animações, skins e morph targets sobrevivem de forma idêntica nos dois. O que muda é quantos arquivos você gerencia, se consegue abrir a descrição da cena em um editor de texto e quanto tamanho extra você paga ao embutir binários dentro do JSON.
Para quase todo mundo a resposta é GLB: um arquivo para enviar, anexar em e-mail ou arrastar para o three.js, Babylon.js, <model-viewer>, Blender, Unity ou Unreal. Escolha o glTF com arquivos separados quando estiver depurando, editando valores de material à mão ou compartilhando texturas entre muitos modelos em um CDN.
Tabela comparativa GLB vs glTF
Os dois são glTF 2.0, então a maioria das linhas é idêntica. As linhas que diferem são justamente as que decidem entre GLB e glTF no seu projeto.
| GLB (.glb) | glTF (.gltf) | |
|---|---|---|
| Tipo de geometria | Malhas de triângulos (também pontos e linhas), hierarquia de nós, skins, morph targets | Idêntico |
| Cor / textura | Texturas PNG ou JPEG armazenadas dentro do chunk binário; cores por vértice | Texturas como arquivos de imagem separados, ou data URIs em base64 dentro do JSON |
| Unidades | Metros, mão direita, +Y para cima, conforme a especificação | Idêntico |
| Materiais | PBR metallic-roughness embutido; mais recursos via extensões KHR | Idêntico |
| Tamanho do arquivo | A menor forma de arquivo único: um cabeçalho de 12 bytes mais um chunk JSON e um chunk BIN | Os mesmos bytes totais dos arquivos separados; cerca de 33% maior se os binários forem embutidos como base64 |
| Editabilidade | Binário; precisa de uma ferramenta para inspecionar | O JSON é legível por humanos e permite diff em um editor de texto |
| Suporte de software | three.js, Babylon.js, model-viewer, Blender, Unity, Unreal, Godot, Visualizador 3D do Windows | Os mesmos loaders; os arquivos externos precisam ficar na pasta relativa correta |
| Uso para impressão | Não é um formato de impressão; o UltiMaker Cura consegue abrir, a maioria dos slicers não | O mesmo; converta para STL ou 3MF para imprimir |
| Número de arquivos | 1 | 1 a vários (.gltf, .bin, imagens) |
Fonte: especificação glTF 2.0 da Khronos, seções sobre extensões de arquivo, sistema de coordenadas e unidades, e o formato de arquivo GLB.
Como um arquivo GLB é montado a partir de um glTF
Um GLB começa com um cabeçalho de 12 bytes: os bytes mágicos glTF, a versão (2) e o comprimento total. Depois vêm os chunks. O primeiro é o chunk JSON, exatamente a mesma descrição de cena que um .gltf conteria. O segundo é o chunk BIN, que guarda posições de vértices, normais, UVs, índices, keyframes de animação e, normalmente, as próprias imagens de textura.
Um .gltf mantém esse JSON como um arquivo autônomo e referencia os dados binários de uma de duas formas: caminhos relativos para arquivos .bin e imagens ao lado dele, ou data URIs que codificam os bytes em base64 direto no JSON. A própria especificação observa que o base64 aumenta em 33% o comprimento em bytes do payload, e decodificá-lo custa processamento extra. É o principal motivo de o GLB existir.
- GLB: cabeçalho + chunk JSON + chunk BIN, um arquivo
- glTF: JSON mais .bin e imagens lado a lado
- glTF embutido: um arquivo, mas o base64 acrescenta um terço
Tamanho de GLB vs glTF: um modelo empacotado de três formas
Pegamos um modelo texturizado gerado por IA da nossa galeria, um cavaleiro robô steampunk com 500.000 triângulos, 287.963 vértices e três texturas PNG 2048 x 2048, e medimos cada forma de empacotamento.
| Empacotamento | Arquivos | Tamanho |
|---|---|---|
| GLB | 1 | 26,9 MB |
| glTF + .bin + texturas PNG | 5 (.gltf, .bin, 3 PNGs) | cerca de 26,9 MB no total; só o JSON do .gltf tem cerca de 2 KB |
| glTF com dados base64 embutidos | 1 | cerca de 35,9 MB |
| O que são esses bytes | Geometria 15,2 MB, texturas 11,7 MB |
Empacotar não encolhe nada. Para deixar o modelo menor, comprima a geometria (Draco ou meshopt), reduza ou recodifique as texturas, ou diminua a contagem de triângulos. Nosso compressor de GLB e nosso simplificador de malha fazem isso no navegador.
glTF vs GLB na web, em AR e no Blender
Na web, o GLB é o padrão prático: uma requisição, uma entrada de cache, e todos os principais loaders leem. Arquivos glTF separados podem sair na frente em um site que mostra muitos modelos compartilhando as mesmas texturas, porque o navegador baixa a imagem compartilhada uma única vez; as notas de implementação da própria especificação descrevem esse trade-off.
Para AR, o Scene Viewer do Android aceita glTF e GLB, enquanto o Quick Look da Apple no iPhone precisa de USDZ, então publique os dois e converta GLB para USDZ para dispositivos Apple. No Blender, File > Import > glTF 2.0 lê qualquer um dos dois, e o menu Format do exportador oferece glTF Binary (.glb) e glTF Separate (.gltf + .bin + textures). Escolha Binary a menos que tenha um bom motivo para não fazer isso.
Para impressão 3D nenhum dos dois é a entrega certa. Converta o GLB para STL ou 3MF; as texturas não imprimem, mas a forma sim.
- Web e compartilhamento: GLB
- Muitos modelos compartilhando texturas: glTF separado
- AR no iPhone: converta para USDZ
- Impressão: converta para STL ou 3MF
GLB vs glTF: quando usar cada um
Os dois são glTF 2.0 válido. Escolha pelo seu fluxo de trabalho.
Compartilhar um modelo com alguém
Incorporar em um site
Depurar um material quebrado
baseColorFactor, metallicFactor ou os índices de textura, corrija e recarregue.Catálogo de produtos com texturas compartilhadas
Controle de versão
Evite: glTF embutido
Convertendo glTF e GLB sem quebrar nada
A conversão é sem perdas nos dois sentidos, desde que todos os arquivos referenciados estejam presentes.
- Mantenha o .gltf, o .bin e as imagens de textura nas mesmas pastas relativas em que foram exportados
- Carregue o resultado em um visualizador e confirme que as texturas aparecem antes de compartilhar
- Lembre-se de que o glTF usa metros: uma miniatura de 30 mm tem 0,03 unidades, o que parece minúsculo em algumas ferramentas
- Comprima geometria e texturas para a web; só reempacotar não economiza nada
- Enviar apenas o arquivo .gltf; sem o .bin e as imagens o modelo carrega vazio ou cinza
- Renomear .gltf para .glb; o cabeçalho binário precisa ser escrito por um conversor
- Usar glTF com base64 embutido em modelos grandes; isso adiciona cerca de 33% aos dados binários
- Esperar que um slicer imprima texturas de um GLB; converta para 3MF em impressões multicoloridas
Visualizadores e conversores GLB e glTF gratuitos
Ferramentas para os dois lados do GLB vs glTF. Todas rodam no seu navegador sem cadastro, e seus arquivos ficam no seu dispositivo.
FAQ
Perguntas frequentes
GLB vs glTF: qual é melhor?
Qual é a diferença entre GLB e glTF em uma frase?
Converter glTF para GLB perde qualidade?
Por que meu GLB é tão grande?
Posso imprimir em 3D um arquivo GLB ou glTF?
Que unidades o glTF usa?
Qual formato o SupaVoxel me entrega?
iPhone abre arquivos GLB?
Ferramentas e guias relacionados
Continuar
Começar grátis
GLB x glTF: qual a diferença? Crie o modelo
Transforme uma foto em modelo 3D, geralmente em menos de um minuto. O download em GLB é grátis com os 3 primeiros créditos e sem cartão; modelos com textura vêm no plano pago.
Sem cartão de crédito · 3 créditos grátis para começar