Cookies voor statistiek en advertenties
We gebruiken cookies voor statistiek en voor advertenties, allebei naar Google. Weigeren verandert niets aan wat je te zien krijgt.Lees de privacypagina
Hier zet je GLTF naar GLB om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.
Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.
Ze worden een voor een omgezet en samen in één ZIP gedownload.
GLTF naar GLB
Er bestaan twee soorten .gltf-bestanden, en maar één werkt hier. Open het bestand in een teksteditor en zoek de buffers-array. Begint de uri met data:application/octet-stream;base64, dan zit elk punt van het model in dat ene bestand en werkt de omzetting. Staat er scene.bin of model.bin, dan leeft de geometrie in een tweede bestand dat een omzetter voor één bestand nooit ziet.
Die tweede vorm komt vaker voor, want het is wat de meeste exporttools standaard produceren, en daarom begint deze pagina met die controle in plaats van hem in een FAQ te verstoppen. Sleep je een glTF met losse buffer hierheen, dan krijg je een expliciete melding dat de geometrie elders zit.
Een glTF met externe bronnen is een klein netwerk bestanden bij elkaar gehouden door relatieve paden: de JSON, een .bin, en één afbeelding per textuur. Elk van die paden is een manier waarop het model kan breken. Verplaats de JSON zonder zijn buren en hij laadt niets; serveer hem vanaf een CDN met een andere mapstructuur en de buffer geeft een 404.
Een GLB kent geen van die faalwijzen, want er is niets te verliezen. Het is ook één HTTP-verzoek in plaats van meerdere, wat telt op een pagina waar het model de reden is dat de bezoeker er is.
De uitvoer is een binaire glTF 2.0: een header van twaalf bytes met de magische tekst glTF, gevolgd door een versienummer en de totale lengte, dan een JSON-blok, dan een binair blok. Het JSON-blok is opgevuld met spaties tot een grens van vier bytes en het binaire blok met nulbytes — de specificatie eist dit, meerdere loaders weigeren een bestand dat andersom is opgevuld.
Puntposities worden altijd als float32 in een VEC3-accessor geschreven en driehoeksindices als uint32 in een SCALAR-accessor, zonder uitzondering. Elke positie-accessor draagt de min en max die de specificatie vereist, zodat viewers het model in beeld vatten in plaats van uitgezoomd op niets te openen.
Deze omzetter verplaatst geometrie. Een glTF met een metallic-roughness-materiaal met basiskleurtextuur, normaalkaart en emissive map wordt een GLB met puntposities, driehoeksindices en meshnamen — het materiaalblok, de afbeeldingen, de samplers en de textuurcoördinaten worden simpelweg niet geschreven.
Was het doel texturen samen te bundelen in één verzendbaar bestand, dan doet deze pagina dat niet — gebruik gltf-transform of de Blender-exporter. Was het doel een enkel binair artefact uit een zelfstandige JSON, dan is het resultaat precies goed en aanzienlijk kleiner.
Animatiekanalen en -samplers worden niet gelezen, skins en gewrichtshiërarchieën niet, camera’s en lichten evenmin. Een gerigd en geanimeerd personage komt in de GLB aan als de statische geometrie van de houding die de vertexdata beschrijft, zonder mogelijkheid om te bewegen.
Voor een statisch object, een architectuurstuk of een gescand voorwerp kost dat niets. Voor een personage of mechaniek is het het hele model. Er is hier geen tussenoplossing en geen instelling die dat verandert.
De brongave wordt vanaf zijn standaardscène doorlopen, en elke node-matrix wordt samengesteld met die van de ouder voordat de punten door het resultaat getransformeerd worden. Nodes beschreven met aparte translatie-, rotatie- en schaaleigenschappen worden eerst tot een matrix omgezet.
De GLB die eruit komt heeft een platte structuur: één scène, één node per mesh, geen ouderschap, geen hergebruik. Een model waarvan de glTF één boutmesh veertig keer door de hiërarchie plaatste, wordt veertig meshes met veertig kopieën van de punten.
Draco-gecomprimeerde geometrie stopt met een melding die Draco noemt. KHR_draco_mesh_compression vervangt de gewone buffer-views door een gecomprimeerde stream, en het decoderen daarvan vereist een bibliotheek die hier niet is meegeleverd.
Geometrie opgeslagen als driehoeksstrips, waaiers, lijnen of punten wordt overgeslagen in plaats van omgezet, want alleen glTF-modus 4 is een driehoekslijst. Een bestand dat verder niets bevat, eindigt met de melding dat er geen driehoeksgeometrie is gevonden.
Een ingesloten glTF slaat zijn buffer op als base64, wat vier tekens per drie bytes kost. Dezelfde geometrie in een GLB-binairblok verplaatsen haalt die overhead weg, dus een zelfstandige glTF krimpt bij omzetting meestal met ongeveer een kwart, nog voor er iets anders meetelt.
Trek daar alles vanaf wat de omzetter niet meeneemt. Voor een model waarvan de omvang vooral texturen was, kan de GLB een klein deel van het origineel zijn. Een handige controle achteraf is het aantal driehoeken: het aantal indices gedeeld door drie moet overeenkomen met wat je brontool meldde.
Nergens. Dit paar draait als gewone JavaScript in de pagina, zonder WebAssembly-module om op te halen en zonder verzoek dat het model meedraagt. Het parsen, de transformatievastzetting en de binaire samenstelling gebeuren allemaal op je eigen machine.
Het gratis plafond is 100 MB, en een zelfstandige glTF is hier het formaat dat er het snelst tegenaan loopt, omdat base64 het de meest opgeblazen manier maakt om dezelfde mesh op te slaan. Zit je dicht bij die grens, dan is het model bijna zeker beter gediend met een rechtstreekse GLB-export vanuit de tool die hem maakte.
| GLTF | GLB | |
|---|---|---|
| Volledige naam | GL Transmission Format | Binary glTF |
| Bestandsextensie | .gltf | .glb |
| Mediatype | model/gltf+json | model/gltf-binary |
| Voor het eerst gepubliceerd | 2015 | 2016 |
| Uitgegeven door | Khronos Group | Khronos Group |
| Specificatie | glTF 2.0 | glTF 2.0 |
| Licentie | Open standaard | Open standaard |
| Stand van zaken | Actueel | Actueel |
| Opent in een browser | Geen browser | Geen browser |
| In plaats daarvan overwogen | OBJ | OBJ |
De animatie blijft. GLTF en GLB dragen allebei meerdere frames, dus het resultaat beweegt nog steeds.
Blender, three.js en Babylon.js lezen zowel GLTF als GLB, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.
GLTF is het formaat van Khronos Group, verschenen in 2015. Het is vastgelegd in glTF 2.0, en dat is de moeite waard als het bestand het gereedschap moet overleven dat het schreef.
GLB komt van Khronos Group en stamt uit 2016, vastgelegd in glTF 2.0. Blender, three.js en Babylon.js lezen het formaat.
Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt.
Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk.
GLTF en GLB beschrijven de inhoud op fundamenteel andere manieren. De omzetting is daarom een reconstructie en geen kopie: getrouw, maar niet byte voor byte identiek. Alleen de meetkunde. Materialen, kleuren, texturen en animatie gaan niet mee, en een model dat meerdere keren geplaatst is komt terug met elke kopie vastgezet op zijn eigen plek.
De animatie blijft. GLTF en GLB dragen allebei meerdere frames, dus het resultaat beweegt nog steeds.