Converter GLTF para GLB

Aqui você converte GLTF para GLB de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. A conversão acontece dentro do seu próprio navegador, então o arquivo nunca é enviado. Funciona igual no Windows, no macOS e no Linux e também no iPhone e no Android, e continua funcionando mesmo se você cortar a conexão.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído GLB funciona de um jeito diferente de GLTF. Não é a degradação gradual de um codec com perda: o que GLB consegue expressar é reproduzido fielmente, e o que não tem equivalente ali não sobrevive de jeito nenhum.
  • Limite de tamanho Até 100 MB por arquivo, de graça e sem conta.
  • Vale saber Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

Até 100 arquivos de uma vez. Formatos misturados não são problema.

Confira o seu glTF antes de convertê-lo para GLB

Existem dois tipos de .gltf no mundo e só um funciona aqui. Abra o arquivo num editor de texto e procure o array "buffers" perto do fim. Se a entrada tem um uri começando com data:application/octet-stream;base64, cada vértice do modelo está dentro desse arquivo e a conversão vai rodar. Se o uri diz scene.bin ou model.bin, a geometria vive num segundo arquivo que um conversor de arquivo único nunca vê.

Essa segunda forma é a mais comum, porque é o que a maioria dos exportadores produz por padrão. Soltar um glTF de buffer separado aqui produz uma mensagem explícita dizendo que a geometria está em outro lugar, sugerindo a versão .glb em vez disso — uma sugestão real, já que o que produziu o .gltf quase sempre também produz um .glb diretamente.

O que um GLB resolve que uma pasta de glTF não resolve

Um glTF com recursos externos é um pequeno grafo de arquivos mantido junto por caminhos relativos: o JSON, um .bin, e uma imagem por textura. Cada um desses caminhos é uma forma do modelo quebrar. Mover o JSON sem seus vizinhos e ele carrega como nada; servir de um CDN com um layout de diretório diferente e o buffer dá 404.

Um GLB não tem nenhum desses modos de falha porque não há nada para perder. Também é uma requisição HTTP em vez de várias, o que importa numa página onde o modelo é o motivo de o visitante estar ali.

Como o GLB é montado a partir do seu glTF

A saída é um binário glTF 2.0: um cabeçalho de doze bytes cujo número mágico soletra glTF seguido de uma versão e do comprimento total, depois um bloco JSON, depois um bloco binário. O bloco JSON é preenchido até um limite de quatro bytes com espaços e o bloco binário com bytes zero, exatamente como a especificação exige.

Dentro, posições de vértice são escritas como float32 num acessador VEC3 e índices de triângulo como uint32 num acessador SCALAR, sem exceção. Todo acessador de posição carrega o mínimo e o máximo que a especificação pede, para que visualizadores enquadrem o modelo em vez de abrir com zoom perdido.

Os materiais do seu glTF não chegam ao GLB

Este conversor move geometria. Um glTF que declara um material metallic-roughness com textura de cor base, mapa normal e mapa emissivo converte para um GLB contendo posições de vértice, índices de triângulo e nomes de malha — e o bloco de material, as imagens, os samplers e as coordenadas de textura simplesmente não são escritos.

Vale pesar isso contra o motivo de estar convertendo. Se o ponto era empacotar texturas num arquivo único, esta página não faz isso. Se o ponto era obter um artefato binário único a partir de um JSON autossuficiente, o resultado é exatamente certo e consideravelmente menor.

Animação, esqueletos e câmeras entre glTF e GLB

Canais e amostradores de animação não são lidos, esqueletos e hierarquias de junta não são lidos, câmeras e luzes não são lidas. Um personagem com esqueleto e animado chega no GLB como a geometria estática de qualquer pose que os dados de vértice descrevam, sem jeito nenhum de movê-lo.

Para um objeto estático, uma peça de arquitetura, um objeto escaneado ou uma peça impressa isso não custa nada, porque não havia nada a perder. Para um personagem ou um mecanismo, é o modelo inteiro.

O grafo de cena se achata do glTF para o GLB

A cena de origem é percorrida a partir da cena padrão, e cada matriz de nó é composta com a do pai antes de os vértices serem transformados pelo resultado. Nós descritos com propriedades separadas de translação, rotação e escala são convertidos para matriz primeiro.

O GLB resultante tem uma estrutura plana: uma cena, um nó por malha, sem hierarquia, sem reuso. Um modelo cujo glTF posicionava uma única malha de parafuso quarenta vezes pela hierarquia vira quarenta malhas com quarenta cópias dos vértices.

Fontes de glTF que este conversor não consegue abrir

Geometria comprimida com Draco para com uma mensagem nomeando o Draco. KHR_draco_mesh_compression substitui os buffer views simples por um fluxo comprimido, e decodificá-lo precisa de uma biblioteca que não está incluída aqui. Reexportar sem Draco é uma caixa de seleção no Blender.

Geometria armazenada como tiras de triângulo, leques, linhas ou pontos é ignorada em vez de convertida, porque só o modo 4 do glTF é uma lista de triângulos. Um JSON malformado — um download truncado é a causa comum — é relatado como ilegível em vez de interpretado de forma arbitrária.

O que o GLB pesa em relação ao glTF que você tinha

Um glTF embutido guarda seu buffer como base64, o que custa quatro caracteres para cada três bytes. Mover a mesma geometria para um bloco binário GLB remove essa sobrecarga, então um glTF autossuficiente costuma encolher cerca de um quarto na conversão antes de qualquer outra coisa ser contada.

Depois subtraia tudo que o conversor não carrega. Para um modelo cujo volume era textura, o GLB pode ser uma pequena fração do original.

Onde o arquivo vai enquanto um glTF vira um GLB

Para lugar nenhum. Este par roda como JavaScript puro na página, sem módulo WebAssembly para buscar e sem requisição carregando o modelo. A análise, a montagem da transformação e a montagem binária acontecem todas na sua máquina.

O teto gratuito são 100 MB, e um glTF autossuficiente é o formato aqui com mais chance de se aproximar disso, já que o base64 o torna o jeito mais inflado de armazenar a mesma malha.

Como converter GLTF para GLB

  1. Solte o seu arquivo GLTF nesta página, ou clique para escolher um.
  2. Escolha GLB como destino. A conversão acontece no seu navegador e o arquivo não é enviado.
  3. Baixe o arquivo GLB pronto.

GLTF ou GLB: o que muda

GLTF comparado com GLB
GLTFGLB
Nome completoGL Transmission FormatBinary glTF
Extensão do arquivo.gltf.glb
Tipo de mídiamodel/gltf+jsonmodel/gltf-binary
Publicado pela primeira vez20152016
Publicado porKhronos GroupKhronos Group
EspecificaçãoglTF 2.0glTF 2.0
LicençaPadrão abertoPadrão aberto
Situação hojeAtualAtual
Abre no navegadorNenhum navegadorNenhum navegador
Considerado no lugarOBJOBJ

O que se mantém

A animação se mantém. GLTF e GLB aceitam vários quadros, então o resultado continua se movendo.

Abrir o resultado

Blender, three.js e Babylon.js leem tanto GLTF quanto GLB, então dá para comparar o resultado com o original sem um segundo programa.

Para que serve cada formato

GLTF é o formato da Khronos Group, publicado em 2015. Está descrito em glTF 2.0, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.

GLB vem da Khronos Group é de 2016, descrito em glTF 2.0. Blender, three.js e Babylon.js leem o formato.

De GLTF para GLB: perguntas frequentes

Meu arquivo GLTF é enviado para algum lugar?

Não. Esta conversão acontece inteiramente no seu navegador, então o arquivo não sai do seu aparelho. Você mesmo pode conferir: abra a aba de rede das ferramentas de desenvolvedor e converta alguma coisa. Você verá a própria página e as requisições de estatística e de publicidade com que este serviço é pago, e nenhuma que leve o seu arquivo.

Converter GLTF para GLB é grátis?

É. Sem conta, sem marca d’água e sem cota diária para gastar: roda no seu próprio aparelho, então você pode voltar quantas vezes quiser. O navegador processa arquivos de até 100 MB, 100 por vez.

Perde qualidade ao converter GLTF para GLB?

GLTF e GLB descrevem o conteúdo de maneiras radicalmente diferentes. A conversão é, portanto, uma reconstrução e não uma cópia: fiel, mas não idêntica byte a byte. Só a geometria. Materiais, cores, texturas e animação não vão junto, e um modelo colocado várias vezes volta com cada cópia fixada na sua própria posição.

A animação sobrevive de GLTF para GLB?

A animação se mantém. GLTF e GLB aceitam vários quadros, então o resultado continua se movendo.

Mais sobre esses formatos