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
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.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
GLTF 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.
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.
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.
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.
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.
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.
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.
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.
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.
| GLTF | GLB | |
|---|---|---|
| Nome completo | GL Transmission Format | Binary glTF |
| Extensão do arquivo | .gltf | .glb |
| Tipo de mídia | model/gltf+json | model/gltf-binary |
| Publicado pela primeira vez | 2015 | 2016 |
| Publicado por | Khronos Group | Khronos Group |
| Especificação | glTF 2.0 | glTF 2.0 |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | OBJ | OBJ |
A animação se mantém. GLTF e GLB aceitam vários quadros, então o resultado continua se movendo.
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.
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.
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.
É. 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.
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 se mantém. GLTF e GLB aceitam vários quadros, então o resultado continua se movendo.