Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
GLB
glTF com as texturas dentro. Um arquivo em vez de uma pasta cheia de dependências.
GLB
GLB é um formato binário, que só significa alguma coisa para um programa que o conhece. Ele guarda formas e coordenadas em vez de pixels, então continua nítido em qualquer tamanho — uma logomarca levada ao tamanho de um outdoor não perde nada. Ele é usado para a web e entregar um arquivo pronto.
A extensão é .glb e o nome por extenso é Binary glTF. Os dois importam menos do que aquilo que o arquivo consegue carregar, e é disso que trata o resto desta página.
A Khronos Group publicou o formato em 2016. A especificação é glTF 2.0.
A idade interessa por um motivo prático: quanto mais antigo o formato, mais programas tiveram tempo de aprendê-lo.
Ela está publicada por inteiro, então dá para implementá-la a partir do documento em vez de por observação — é por isso que o formato aparece em tantos programas e por isso que arquivos escritos há vinte anos ainda abrem. Especificação publicada não é o mesmo que livre de royalties: quando o formato embrulha um codec, o licenciamento das patentes é uma questão à parte, que a norma não resolve.
GLB guarda o conteúdo exatamente. Salvar de novo não muda nada, então dá para abrir, editar e salvar quantas vezes você quiser sem acumular estrago — e é isso que faz dele um formato de trabalho e não de entrega.
GLB consegue guardar uma animação em vez de uma imagem parada. Vale saber disso antes de converter: um destino que só comporta um quadro fica com o primeiro e larga o resto, quase sempre sem avisar.
Blender, three.js e Babylon.js leem esse formato, e a maioria dos programas do mesmo tipo também.
Quando um arquivo não abre, o formato raramente é o problema — mais comum é o programa ser mais antigo que ele. Converter para algo mais antigo é o caminho confiável, e é para isso que serve o resto deste site.
Nenhum navegador lê o formato.
Esse é de longe o motivo mais comum para convertê-lo: não que o formato seja ruim, mas que o lugar onde você quer mostrar o arquivo não consegue lê-lo.
GLB foi feito para ser aberto e alterado. Mantenha o arquivo nesse formato enquanto o trabalho estiver em andamento e exporte a partir dele sempre que precisar de uma cópia pronta.
GLB é glTF compactado num único contêiner binário: a descrição de cena em JSON, o buffer de geometria e toda textura, num arquivo só com um cabeçalho pequeno. Nada é adicionado e nada fica de fora — desempacote um GLB e você tem o .gltf, o .bin e as imagens que de outra forma ficariam numa pasta.
Essa é a diferença inteira, e é o motivo de quase tudo publicado como 3D na web ser um GLB. Um .gltf sem seus companheiros é uma descrição de cena referindo dados que não estão ali, e enviar um é o mesmo erro que enviar um OBJ sem o MTL.
Um modelo 3D tem mais peças soltas que a maioria dos recursos: um buffer binário, uma textura de cor base, um mapa normal, um mapa de rugosidade, um mapa de oclusão, um mapa emissivo. Um objeto único pode ser oito arquivos, e uma cena pode ser dezenas.
Um arquivo só remove uma classe inteira de falha — uma textura ausente, um caminho relativo quebrado, uma pasta compactada num nível errado. Também remove idas e vindas de rede: um navegador buscando um GLB faz uma requisição onde o equivalente .gltf faz oito, e numa conexão móvel a diferença no tempo até a primeira renderização é maior que a diferença em bytes.
No Android, o Scene Viewer pega um GLB, e o elemento model-viewer que a maioria dos sites usa para 3D usa GLB como fonte principal. Aponte um celular para uma página de produto e o modelo que aparece no ambiente veio de um.
iOS é a exceção que vale saber: o Quick Look da Apple usa USDZ, o formato próprio dela, então um site suportando realidade aumentada nas duas plataformas publica um GLB e um USDZ lado a lado. O elemento model-viewer aceita os dois e escolhe pela plataforma.
Textura domina, não geometria. Um modelo com quatro mapas em 4K já são trinta megabytes antes de contar mais nada, e reduzir para 1K ou 2K geralmente não custa nada visível no tamanho em que o modelo é realmente exibido. Faça isso primeiro.
Depois Draco para a malha, que frequentemente leva a geometria a um quinto ou um décimo do tamanho, e KTX2 com Basis Universal para as texturas, que adicionalmente deixa a placa de vídeo manter elas comprimidas na memória em vez de expandir. Juntos, esses recursos costumam transformar uma exportação de quarenta megabytes em algo abaixo de três.
Edição e inspeção. Um .gltf é JSON legível, então um valor de material errado ou um nó com escala errada pode ser encontrado e corrigido num editor de texto, e um controle de versão consegue mostrar uma diferença significativa entre duas revisões.
Um GLB é opaco. Qualquer mudança significa desempacotar, editar e reempacotar, e um repositório guardando arquivos GLB armazena um binário completo novo a cada commit. O arranjo sensato é o mesmo de qualquer lugar deste site: mantenha o .gltf e seus recursos como o mestre de trabalho, e produza o GLB como uma etapa de build para entrega.
Amplamente, para um formato de dez anos. Toda biblioteca 3D web, Blender, Unity, Unreal, Godot, Substance, Sketchfab, o visualizador de RA do Android, e os grandes marketplaces de recurso. O Microsoft Office até consegue embutir um num documento ou slide.
Onde não é aceito é qualquer coisa construída em torno de pipelines mais antigos: impressão 3D quer STL ou 3MF, CAD quer seus próprios formatos, e cinema e efeitos visuais usam USD ou Alembic. GLB é um formato de entrega em tempo real, e pedir que ele faça um trabalho de manufatura ou cinema é pedir o arquivo errado.
GLB e glTF convertem um para o outro sem perdas nas duas direções, porque são o mesmo dado com embalagem diferente. Qualquer coisa que lê um lê o outro, e a conversão é empacotar ou desempacotar, não traduzir.
De OBJ, FBX ou um programa de modelagem, espere que os materiais precisem de atenção: o vocabulário baseado em física que o GLB usa não tem equivalente no MTL do OBJ, então um modelo importado chega cinza e correto em vez de texturizado e correto. Para STL para impressão, tudo exceto a forma é descartado — materiais, textura, animação, hierarquia de cena — e a malha geralmente vai precisar de reparo antes de um fatiador aceitar.
| Extensão | .glb |
|---|---|
| Tipo de mídia | model/gltf-binary |
| Publicado por | Khronos Group |
| Primeira publicação | 2016 |
| Especificação | glTF 2.0 |
Só embalagem. Um .gltf é JSON referindo um buffer binário separado e arquivos de textura, então um modelo é uma pasta; um .glb empacota tudo isso num arquivo binário só. Converter entre eles é sem perdas nas duas direções.
O Blender abre direto, assim como Unity, Unreal e Godot. Para uma olhada rápida, qualquer visualizador glTF baseado em web serve, e o Microsoft Office consegue embutir um num documento ou slide.
Textura, quase sempre, não geometria. Quatro mapas em 4K já são trinta megabytes antes de contar mais nada. Reduza para 1K ou 2K primeiro, depois aplique Draco para a malha e KTX2 para as texturas.
No Android, sim — o Scene Viewer pega GLB direto. O iOS usa o formato próprio USDZ da Apple, então um site suportando os dois publica um GLB e um USDZ lado a lado e deixa o elemento model-viewer escolher.
Como cópia de entrega, sim. Como mestre de trabalho, não — um .gltf é JSON legível que pode ser inspecionado, corrigido num editor de texto e comparado de forma significativa no controle de versão, onde um GLB é opaco.
Converta para STL ou 3MF primeiro, e espere reparar a malha. Modelos construídos para renderização em tempo real frequentemente não são estanques — superfícies sem espessura parecem perfeitas na tela e são impossíveis de imprimir.