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 STL para GLTF 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.
STL para GLTF
Nenhum navegador renderiza STL nativamente nem renderiza glTF nativamente — os dois precisam de um runtime. O que muda é a qualidade do caminho: three.js embarca um leitor de STL, então servir o STL direto parece razoável, e para uma ferramenta interna é uma resposta aceitável.
Deixa de ser razoável quando a página é pública e o modelo é o conteúdo. Um STL é o jeito menos eficiente de mover uma malha por uma conexão que existe, não carrega limites de câmera, e todo triângulo chega com seus próprios três vértices. glTF foi desenhado exatamente para essa transferência.
Um STL binário tem exatamente 84 + 50n bytes para n triângulos, independente da forma. Cinquenta desses bytes são doze para uma normal de face, trinta e seis para três vértices completos e dois sem uso. Nada é compartilhado: um cubo são trinta e seis registros de vértice para oito cantos distintos.
A conversão arredonda coordenadas em seis casas decimais para formar uma chave e funde todo canto na mesma posição num único vértice. Numa superfície fechada, cada vértice costuma servir cinco ou seis triângulos, então os dados de vértice caem por aproximadamente esse fator.
Uma cena, um nó, uma malha, uma primitiva em modo triângulo, um acessor de posição float32 VEC3 e um acessor de índice uint32 SCALAR. O buffer é embutido como data URI base64, então o arquivo é autocontido.
O acessor POSITION carrega mínimo e máximo, exigidos pela especificação, e é a diferença prática entre um modelo que aparece e um que não aparece. model-viewer e three.js derivam a distância inicial da câmera desses seis números.
Nenhum atributo NORMAL é escrito, e a especificação glTF instrui visualizadores a calcularem normais de face chapadas quando uma malha não tem nenhuma. Num modelo orgânico importado de uma ferramenta de escultura, isso pareceria defeito. Numa peça que saiu de um CAD como STL, é a verdade.
Um STL não tem superfície curva. Tem os triângulos que o exportador produziu na tolerância definida, e uma renderização suave deles seria uma mentira sobre a geometria que uma impressora vai reproduzir de fato.
STL não declara unidade, e o mundo da engenharia e da impressão lê seus números como milímetro. glTF 2.0 define sua unidade linear como metro. A conversão copia as coordenadas sem alterar, porque reescalar por um fator que a origem nunca declarou seria um chute.
Então um suporte de 60 mm vira um suporte de 60 metros em termos glTF. Nada parece errado isoladamente — a câmera enquadra pelos limites e o modelo preenche a vista —, mas fica errado assim que ele fica ao lado de outra coisa numa cena. Ajuste uma escala uniforme de 0,001 no nó do seu visualizador.
Como um STL não tem partes, grupos ou objetos, o glTF contém exatamente uma primitiva — o mais barato que existe para renderizar, e significa que um modelo derivado de STL nunca sofre o problema de múltiplas chamadas de desenho que uma exportação CAD com trezentos grupos cria.
Também não tem material, textura, UV nem cor de vértice, porque o STL não tinha nenhum. Seu visualizador aplica o padrão dele, geralmente um cinza médio físico. Atribuir algo melhor no three.js é uma linha, e vale fazer.
O .gltf escrito aqui embute o buffer como data URI base64, então não há .bin para servir ao lado nem caminho relativo para quebrar. Base64 custa quatro caracteres por três bytes, então essa conveniência custa cerca de 33% mais bytes.
Para um arquivo que você vai inspecionar ou processar depois, pegue o glTF. Para o arquivo que o visitante de fato baixa, pegue o GLB: mesma geometria, mesmos limites, buffer binário, uma requisição só. Converter um STL para qualquer um dos dois é a mesma operação aqui.
STL binário e ASCII compartilham extensão e o arquivo não diz qual é. O teste comum — checar se o arquivo começa com a palavra "solid" — é pouco confiável, porque o cabeçalho de oitenta bytes de um STL binário pode conter qualquer texto.
O teste confiável é aritmético: um STL binário tem exatamente 84 + 50n bytes para a contagem de triângulos no seu cabeçalho, e é isso que este conversor usa. Se o comprimento não bater, o arquivo é decodificado como texto.
Para lugar nenhum. O par roda como JavaScript puro na página — nenhum motor WebAssembly a baixar, nenhuma requisição carregando o modelo, nenhuma fila. Isso importa mais que o normal aqui, porque os STLs que as pessoas convertem para uma prévia web costumam ser a peça de um cliente ou um produto ainda não lançado.
O teto gratuito é 100 MB, o que a cinquenta bytes por triângulo dá um modelo de dois milhões de triângulos. Arquivos desse tamanho valem decimação antes da conversão em vez de depois.
| STL | GLTF | |
|---|---|---|
| Nome completo | Stereolithography | GL Transmission Format |
| Extensão do arquivo | .stl | .gltf |
| Tipo de mídia | model/stl | model/gltf+json |
| Publicado pela primeira vez | 1987 | 2015 |
| Publicado por | 3D Systems | Khronos Group |
| Especificação | — | 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 | 3MF, OBJ, PLY | GLB, OBJ |
Blender lê tanto STL quanto GLTF, então dá para comparar o resultado com o original sem um segundo programa.
Os dois miram trabalhos diferentes: STL em a impressão 3D, GLTF em a web e entregar um arquivo pronto. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.
GLTF vem da Khronos Group é de 2015, descrito em glTF 2.0. Blender, three.js e Babylon.js leem o formato.
STL foi publicado em 1987 e GLTF em 2015. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.
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.
STL e GLTF 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.
Para a conversão, não: ela acontece no navegador que você já tem aberto. Para abrir o resultado você precisa depois do programa com que o seu aparelho normalmente exibe GL Transmission Format.