GLTF naar GLB omzetten

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.

  • Waar het draait In je browser. Het bestand wordt nooit geüpload.
  • Opnieuw opgebouwd GLB werkt anders dan GLTF. Het is dus niet het geleidelijke kwaliteitsverlies van een lossy codec: wat GLB kan uitdrukken wordt getrouw weergegeven, en wat daar geen equivalent heeft blijft helemaal weg.
  • Maximale grootte Tot 100 MB per bestand, gratis en zonder account.
  • Goed om te weten 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.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Controleer je glTF voordat je hem omzet 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.

Wat een GLB oplost dat een map met glTF-bestanden niet oplost

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.

Hoe de GLB uit je glTF wordt samengesteld

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.

De materialen van je glTF halen de GLB niet

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.

Animatie, skins en camera’s tussen glTF en GLB

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 scenegraaf wordt afgevlakt tussen glTF en GLB

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.

glTF-bronnen die deze omzetter niet kan openen

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.

Wat de GLB weegt naast de glTF waarmee je begon

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.

Waar het bestand blijft terwijl een glTF een GLB wordt

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.

Zo zet je GLTF naar GLB om

  1. Sleep je GLTF-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies GLB als doel. De omzetting gebeurt in je browser en het bestand wordt niet geüpload.
  3. Download het klare GLB-bestand.

GLTF of GLB: wat er verandert

GLTF vergeleken met GLB
GLTFGLB
Volledige naamGL Transmission FormatBinary glTF
Bestandsextensie.gltf.glb
Mediatypemodel/gltf+jsonmodel/gltf-binary
Voor het eerst gepubliceerd20152016
Uitgegeven doorKhronos GroupKhronos Group
SpecificatieglTF 2.0glTF 2.0
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserGeen browserGeen browser
In plaats daarvan overwogenOBJOBJ

Wat behouden blijft

De animatie blijft. GLTF en GLB dragen allebei meerdere frames, dus het resultaat beweegt nog steeds.

Het resultaat openen

Blender, three.js en Babylon.js lezen zowel GLTF als GLB, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.

Waarvoor elk formaat bedoeld is

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.

Van GLTF naar GLB: veelgestelde vragen

Wordt mijn GLTF-bestand ergens heen geüpload?

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.

Is GLTF naar GLB omzetten gratis?

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.

Gaat er kwaliteit verloren bij het omzetten van GLTF naar GLB?

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.

Blijft de animatie behouden van GLTF naar GLB?

De animatie blijft. GLTF en GLB dragen allebei meerdere frames, dus het resultaat beweegt nog steeds.

Meer over deze formaten