Converter GLB para glTF

Converter GLB para glTF aqui produz um único arquivo JSON, com a geometria incorporada em base64 para facilitar inspeção e comparação. Não é uma simples extração do contêiner: o documento é reconstruído a partir dos triângulos, sem materiais, texturas, animações nem a hierarquia original da cena.

  • Onde roda No seu navegador. O arquivo nunca é enviado.
  • Reconstruído GLTF funciona de um jeito diferente de GLB. Não é a degradação gradual de um codec com perda: o que GLTF 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.

GLB para glTF aqui significa reconstruir, não desempacotar

GLB e glTF podem guardar o mesmo tipo de cena, mas a operação feita nesta página não se limita a retirar o JSON e o bloco binário de dentro do contêiner. O leitor abre o GLB, percorre a cena ativa e reduz cada primitiva compatível a uma estrutura comum formada por posições de vértices, índices de triângulos e, quando existe, o nome da malha. Em seguida, o escritor cria um documento glTF 2.0 novo em torno desses dados. Accessors, buffer views, nós e cena são gerados novamente; eles não são cópias das entradas originais.

Essa diferença decide se o resultado serve para o seu objetivo. Para consultar contagem de vértices, quantidade de triângulos, dimensões ou nomes de partes, o arquivo reconstruído é direto e legível. Para editar um material PBR, trocar uma textura, preservar um rig ou continuar uma animação, ele não serve como substituto fiel do GLB. Nesse caso, mantenha o original e use o exportador que produziu o modelo ou uma ferramenta dedicada a reempacotar glTF sem reduzir a cena a geometria.

O que muda entre o contêiner GLB e o documento glTF

Um arquivo `.gltf` é um documento JSON. Os dados pesados, como posições e índices, podem ficar em um arquivo `.bin` ao lado dele ou em uma URI de dados dentro do próprio JSON. Imagens também podem ser arquivos externos, URIs de dados ou regiões de um buffer. Já o `.glb` reúne a descrição JSON e um bloco binário no mesmo contêiner. Para transporte, upload e publicação, isso reduz o risco de esquecer uma dependência ao mover uma pasta ou alterar um caminho relativo.

Seria possível trocar esses dois contêineres sem alterar a cena, mas não é esse o caminho implementado no Quinvert. O resultado usa a forma JSON e incorpora apenas o novo buffer geométrico em base64, codificação que ocupa cerca de um terço a mais que os bytes binários. Ele não extrai imagens, não cria um `.bin` separado e não conserva referências aos recursos do GLB. Receber um único `.gltf` significa que a geometria sobrevivente ficou autocontida, não que toda a origem foi reunida no JSON.

A geometria que sobrevive à passagem de GLB para glTF

As posições dos vértices e os índices das primitivas triangulares são o núcleo preservado. Quando uma primitiva não possui accessor de índices, o leitor cria uma sequência na ordem dos vértices, como 0, 1, 2, 3, 4, 5. No arquivo de saída, cada conjunto recebe um accessor `POSITION` de vetores com três componentes em ponto flutuante de 32 bits e um accessor de índices inteiros sem sinal de 32 bits. Cada grupo de três índices descreve um triângulo, por isso a divisão da contagem do accessor de índices por três fornece a quantidade de faces daquela malha.

O escritor também calcula os valores mínimos e máximos de X, Y e Z para cada accessor de posições. Esses seis números formam a caixa delimitadora da parte e ajudam a perceber rapidamente se o modelo está longe da origem, se uma dimensão saiu mil vezes maior que o esperado ou se uma peça quase plana foi exportada com espessura. Os nomes das malhas são mantidos quando estavam definidos no GLB. Se uma malha de origem contém várias primitivas triangulares, cada uma entra como item separado no modelo intermediário e pode repetir esse mesmo nome na saída.

Materiais e texturas do GLB ficam fora do novo glTF

Definições de material metálico e rugoso, cor base, emissividade, transparência e dupla face não são copiadas. Imagens, samplers e relações entre texturas e materiais também são descartados, estejam no bloco binário ou em uma URI de dados. O leitor transporta `POSITION` e índices, mas não `NORMAL`, `TANGENT`, coordenadas UV nem cores de vértice. Uma superfície curva pode aparecer facetada, e uma textura não pode ser recolocada corretamente sem UVs. O glTF aceita esses dados; a perda vem do modelo geométrico reduzido deste conversor.

Imagine um móvel destinado a um catálogo brasileiro: a geometria do sofá, das almofadas e dos pés pode continuar reconhecível, e os nomes ajudam a identificar as peças. O tecido, a madeira, a escala da trama e qualquer variação de cor não chegam ao outro lado. O `.gltf` é útil para conferir limites ou comparar topologia, mas não para substituir o produto renderizado. Para conservar a apresentação, faça uma conversão de contêiner que mantenha materiais, imagens e coordenadas, ou reexporte a partir do arquivo de autoria.

Como a cena GLB vira uma lista plana no glTF

O GLB pode organizar nós como uma árvore: a roda pertence ao eixo, o eixo pertence ao conjunto dianteiro e o conjunto pertence ao veículo. Cada nó pode ter translação, rotação e escala próprias, herdando também a transformação dos pais. O leitor percorre os nós raiz da cena selecionada e multiplica essas transformações. A matriz de mundo resultante é aplicada diretamente às posições dos vértices antes da escrita. Transformações expressas separadamente como TRS e transformações fornecidas como matriz entram nesse cálculo.

O desenho espacial tende a permanecer, mas a organização que o produziu não. A saída tem uma cena plana, com um nó novo para cada malha reconstruída e sem relações de pai e filho. Quando vários nós reutilizam a mesma malha, cada ocorrência vira uma cópia geométrica na posição calculada; quatro rodas deixam de compartilhar os mesmos vértices. Isso remove pivôs, sistemas locais e a economia de instâncias. Um editor 3D abrirá as peças nos lugares finais, não com a estrutura de montagem original.

Animação, rig e morph targets não saem do GLB

Canais e samplers de animação não são lidos. O mesmo acontece com skins, juntas, matrizes inversas de bind e morph targets usados para expressão facial ou deformação. Uma personagem rigada não continua rigada no arquivo novo, e uma sequência de abertura de máquina, caminhada ou rotação de produto não poderá ser reproduzida. O que sobra é a geometria estática encontrada nas posições armazenadas, depois da aplicação das transformações estáticas dos nós percorridos.

É importante não confundir isso com congelar a animação no quadro que estava aparecendo em algum visualizador. O GLB não registra um “quadro atual” universal, e o conversor não executa a timeline, não avalia ossos e não calcula morph weights ao longo do tempo. Ele lê os buffers e a transformação estática descrita pela cena. Se você precisa de uma pose específica, aplique a pose e converta a malha no programa de autoria antes da exportação. Se precisa continuar animando, o arquivo reconstruído desta página não é uma base adequada.

Primitivas GLB aceitas e geometrias que são ignoradas

A leitura aceita primitivas em modo de lista de triângulos, o modo 4 do glTF. Pontos, linhas, loops de linha, tiras de linha, tiras de triângulos e leques de triângulos não são convertidos. Essas primitivas são puladas em vez de serem reinterpretadas, porque transformar cada modo em triângulos exigiria regras diferentes e linhas ou pontos nem sequer descrevem superfícies. Primitivas sem atributo `POSITION` também não fornecem a geometria mínima esperada e ficam de fora.

Um GLB misto pode, portanto, produzir uma saída parcial: a superfície triangular permanece, enquanto uma trajetória desenhada com linhas, marcadores de pontos ou uma sobreposição técnica some. Se nenhuma primitiva triangular utilizável for encontrada, a conversão para com uma mensagem informando que não há geometria de triângulos. Ao revisar um arquivo CAD exportado, um mapa com trajetos ou uma visualização científica, confira se linhas e pontos carregam significado; a ausência deles no resultado não prova que não existiam na origem.

Por que um GLB com Draco não pode virar este glTF

Quando o documento declara uma extensão Draco, a leitura é interrompida com um erro específico. A extensão `KHR_draco_mesh_compression` substitui a disposição comum dos atributos por um fluxo comprimido que precisa de um decodificador próprio. Esse decodificador não faz parte desta página. Continuar sem ele poderia resultar em uma malha vazia ou em números sem sentido, por isso a falha explícita é mais segura que uma saída aparentemente válida.

A solução é voltar ao programa ou pipeline que exportou o modelo e gerar uma versão sem Draco. Depois que posições e índices estiverem disponíveis nos accessors normais, o leitor consegue reconstruir a geometria. Desativar Draco não recupera materiais ou animações nesta conversão; apenas remove o bloqueio para ler os triângulos. Se o objetivo final continua sendo uma cópia fiel em JSON, use uma ferramenta capaz de decodificar a extensão e preservar o documento completo, em vez de passar pelo modelo reduzido do Quinvert.

Como ler o glTF gerado a partir do GLB

Abra o resultado num editor de texto e comece por `meshes`, `accessors` e `bufferViews`. Cada malha possui uma primitiva triangular com referências para posições e índices. O `count` do accessor `POSITION` informa quantos vértices foram escritos; o `count` do accessor escalar de índices, dividido por três, informa os triângulos. Os campos `min` e `max` de `POSITION` mostram os limites da malha já no espaço de mundo calculado durante a leitura. Como as matrizes foram incorporadas, esses valores não são necessariamente os limites locais que apareciam no GLB.

O buffer em si aparece como uma URI iniciada por `data:application/octet-stream;base64,`. O texto base64 não é uma lista de coordenadas legível diretamente; ele codifica os bytes dos arrays de ponto flutuante e inteiros descritos pelos accessors e buffer views. Ainda assim, a estrutura JSON permite comparar quantidades, nomes, limites e organização básica entre duas exportações. Para comparar vértices individualmente, é preciso decodificar o buffer segundo offsets, tipos de componente e contagens, não procurar números decimais dentro da string.

Privacidade e limite ao converter GLB para glTF

A regra deste par usa processamento no cliente em JavaScript. O navegador lê o GLB e monta o texto glTF na própria aba; o arquivo não precisa ser enviado a um servidor para realizar a conversão. Isso é relevante para protótipos de produto, peças ainda não lançadas e modelos recebidos sob controle interno. O limite gratuito registrado é de 100 MB por arquivo, mas o trabalho em memória inclui os bytes de entrada, os arrays de posições e índices, o buffer novo, sua representação base64 e o JSON final.

Em modelos próximos do limite, o consumo de memória pode superar várias vezes o tamanho do GLB, sobretudo quando há muitas instâncias que viram cópias geométricas. Fechar abas pesadas e evitar converter vários arquivos ao mesmo tempo ajuda, mas não muda a perda estrutural descrita acima. Guarde o GLB original até conferir a saída. O arquivo gerado é um derivado para inspeção; não deve ser tratado como backup completo da cena apenas porque abriu corretamente num visualizador.

Como converter GLB para GLTF

  1. Solte o arquivo GLB nesta página ou clique para escolhê-lo no dispositivo.
  2. Aguarde a leitura da cena e a reconstrução dos triângulos em um glTF JSON dentro do navegador.
  3. Baixe o `.gltf`, abra-o em um editor e confira malhas, contagens e limites sem substituir o GLB original.

GLB ou GLTF: o que muda

GLB comparado com GLTF
GLBGLTF
Nome completoBinary glTFGL Transmission Format
Extensão do arquivo.glb.gltf
Tipo de mídiamodel/gltf-binarymodel/gltf+json
Publicado pela primeira vez20162015
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. GLB e GLTF aceitam vários quadros, então o resultado continua se movendo.

Abrir o resultado

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

Para que serve cada formato

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

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

De GLB para GLTF: perguntas frequentes

Converter GLB para glTF aqui preserva o documento inteiro?

Não. O conversor reconstrói um documento novo com posições, índices e nomes de malha. Materiais, texturas, UVs, normais, animações, skins, morph targets, extensões e a hierarquia original não são transportados.

A conversão cria um arquivo `.bin` ao lado do glTF?

Não. O buffer geométrico é codificado em base64 dentro de uma URI de dados no próprio JSON. A saída é um único `.gltf`, sem arquivo binário ou imagens externas.

As posições e escalas dos nós GLB são mantidas?

O efeito visual das transformações estáticas é aplicado às posições dos vértices. A translação, rotação, escala, os pivôs e as relações entre pais e filhos não permanecem como uma hierarquia editável no glTF gerado.

O que acontece com linhas, pontos e triangle strips do GLB?

Somente primitivas em modo de lista de triângulos são aceitas. Pontos, linhas, tiras e leques são ignorados; se não restar nenhuma geometria triangular, a conversão termina com um erro claro.

Por que um GLB compactado com Draco é recusado?

Porque `KHR_draco_mesh_compression` exige um decodificador próprio, que não é fornecido nesta página. Reexporte uma versão sem Draco para ler os triângulos, ou use uma ferramenta que decodifique a extensão e preserve a cena completa.

O arquivo GLB é enviado para um servidor?

Não para executar esta conversão. A leitura e a reconstrução acontecem no navegador, com limite gratuito registrado de 100 MB por arquivo.

Mais sobre esses formatos