GLTF in GLB umwandeln

GLTF kannst du hier kostenlos und ohne Konto in GLB umwandeln: Datei oben ablegen, und ein, zwei Sekunden später steht das Ergebnis zum Herunterladen bereit. Die Umwandlung läuft in deinem eigenen Browser, die Datei wird also nie hochgeladen — das klappt unter Windows, macOS und Linux ebenso wie auf iPhone und Android, und es funktioniert selbst dann noch, wenn du das Netz abschaltest.

  • Wo es läuft In deinem Browser. Die Datei wird nicht hochgeladen.
  • Neu aufgebaut GLB funktioniert anders als GLTF. Es ist also nicht der schleichende Qualitätsverlust eines verlustbehafteten Codecs: Was GLB ausdrücken kann, wird originalgetreu wiedergegeben — was dort keine Entsprechung hat, bleibt ganz weg.
  • Größenbegrenzung Bis 100 MB pro Datei, kostenlos und ohne Konto.
  • Gut zu wissen Nur die Geometrie. Materialien, Farben, Texturen und Animation kommen nicht mit, und ein mehrfach platziertes Modell kommt so zurück, dass jede Kopie fest an ihrer eigenen Position sitzt.

Bis zu 100 Dateien auf einmal. Gemischte Formate sind kein Problem.

Wenn ein Onlineshop eine „In deinem Raum ansehen"-Funktion einbaut

Ein Möbelhaus oder ein Einrichtungsshop, der eine Augmented-Reality-Vorschau für ein Produkt einbaut, stößt fast immer auf dieselbe Anforderung: Das Upload-Formular der Plattform — ein Shopsystem, ein AR-Viewer-Baustein, model-viewer auf der eigenen Produktseite — nimmt genau eine Datei an, keinen Ordner. Kommt das 3D-Modell aus einem CAD-Export oder einer Modellierungs-Software als .gltf, liegt daneben aber häufig eine zweite Datei mit den eigentlichen Geometriedaten, und schon bricht der Upload ab, weil der relative Pfad zur .bin-Datei beim Hochladen verlorengeht.

Diese Umwandlung packt beides in eine einzige binäre GLB-Datei — vorausgesetzt, das glTF trägt seine Geometrie bereits vollständig in sich selbst. Genau das ist die Bedingung, die diese Seite zuerst klärt, denn die Hälfte aller .gltf-Dateien im Umlauf erfüllt sie nicht, und das lohnt sich vor dem Hochladen zu wissen statt danach.

Die eigene Datei vor der Umwandlung prüfen

Es gibt zwei Arten von .gltf, und nur eine funktioniert hier. Die Datei in einem Texteditor öffnen und nach dem Feld „buffers" gegen Ende suchen. Beginnt der uri-Wert mit data:application/octet-stream;base64, liegt jeder Eckpunkt des Modells in dieser einen Datei, und die Umwandlung läuft. Steht dort stattdessen etwas wie scene.bin, liegt die Geometrie in einer zweiten Datei, die ein Ein-Datei-Umwandler nie zu sehen bekommt.

Diese zweite Form ist die häufigere, weil sie der Standardexport der meisten Werkzeuge ist. Wird eine solche Datei hier abgelegt, kommt eine klare Meldung statt eines leeren Modells, die auf die fehlende .bin-Datei verweist. Die meisten Exportwerkzeuge — Blender eingeschlossen — bieten dafür eine Option, den Puffer beim Export einzubetten statt ihn auszulagern, oder man exportiert direkt als .glb, was dieselbe Software fast immer ebenfalls kann.

Warum ein AR-Viewer eine einzige Datei will und keinen Dateiordner

Ein glTF mit externen Ressourcen ist ein kleines Geflecht aus Dateien, zusammengehalten durch relative Pfade: das JSON, eine .bin-Datei, ein Bild je Textur. Jeder dieser Pfade ist eine Gelegenheit für das Modell zu brechen. Wird das JSON ohne seine Nachbarn verschoben, lädt nichts. Wird es über ein CDN mit anderer Verzeichnisstruktur ausgeliefert, meldet die Puffer-Anfrage einen 404-Fehler.

Eine GLB-Datei kennt keine dieser Fehlerarten, weil es nichts zu verlieren gibt. Sie ist zudem eine einzelne HTTP-Anfrage statt mehrerer, was auf einer Produktseite zählt, auf der das Modell der eigentliche Grund für den Besuch ist. Diese Eigenschaft ist der ganze Grund, warum der binäre Container in glTF 2.0 von Anfang an neben der JSON-Form spezifiziert wurde und nicht erst nachträglich angeflanscht ist.

Wie die GLB-Datei aus dem glTF zusammengesetzt wird

Herauskommt ein glTF-2.0-Binärformat: ein zwölf Byte langer Kopf, dessen Signatur glTF lautet, gefolgt von Versionsnummer und Gesamtlänge, dann ein JSON-Abschnitt, dann ein Binärabschnitt. Der JSON-Abschnitt wird mit Leerzeichen auf eine Vier-Byte-Grenze aufgefüllt, der Binärabschnitt mit Nullbytes — eine Vorgabe der Spezifikation, keine bloße Konvention, und mehrere Loader lehnen eine anders aufgefüllte Datei ab.

Im Inneren werden Eckpunktpositionen ausnahmslos als Float32 in einem VEC3-Accessor geschrieben, Dreiecksindizes als Uint32 in einem SCALAR-Accessor. Ein schmalerer Indextyp würde bei kleinen Modellen ein paar Kilobyte sparen und bräuchte dafür eine Bedingung, die bei 65.535 Eckpunkten still das Verhalten ändert — ein schlechter Tausch für einen Umwandler. Jeder Positions-Accessor trägt Minimum und Maximum, wie es die Spezifikation verlangt, damit ein Viewer das Modell einrahmt statt bei einem Zoom ins Leere zu starten.

Materialien und Texturen kommen nicht in der GLB-Datei an

Diese Umwandlung bewegt Geometrie. Ein glTF, das ein Metallic-Roughness-Material mit einer Grundfarbtextur, einer Normal Map und einer Emissive Map deklariert, wird zu einer GLB-Datei mit Eckpunktpositionen, Dreiecksindizes und Netznamen — der Materialblock, die Bilder, die Sampler und die Texturkoordinaten werden schlicht nicht geschrieben.

Das lohnt sich gegen den eigenen Anlass abzuwägen. Sollte das Ergebnis ein ausstellungsfertiges Modell mit eingebetteten Texturen sein, leistet diese Seite das nicht — dafür sind gltf-transform oder der Blender-Export der richtige Weg. Ging es dagegen darum, aus einem eigenständigen JSON ein einzelnes binäres Artefakt zu bekommen — für einen Größentest, eine reine Geometrie-Vorschau, einen Platzhalter in einer Szene —, ist das Ergebnis genau richtig und deutlich kleiner.

Animation, Skinning und Kameras zwischen glTF und GLB

Animationskanäle und -sampler werden nicht gelesen, Skins und Gelenkhierarchien werden nicht gelesen, Kameras und Lichter werden nicht gelesen. Eine geriggte und animierte Figur kommt in der GLB-Datei als starre Geometrie der Pose an, die die Eckpunktdaten gerade beschreiben, ohne jede Möglichkeit, sie zu bewegen.

Für ein statisches Möbelstück, ein architektonisches Element oder ein gescanntes Objekt kostet das nichts, weil es nichts zu verlieren gab. Für eine Figur oder einen Mechanismus ist es das ganze Modell. Es gibt hier kein Teilergebnis und keine Einstellung, die das ändert — die ehrliche Empfehlung ist, den Inhalt des eigenen glTF vor der Umwandlung zu prüfen statt danach.

Der Szenengraph wird auf dem Weg von glTF zu GLB flachgeklopft

Die Quellszene wird von ihrem Standardszenen-Index aus durchlaufen, und jede Knotenmatrix wird mit der ihres Elternknotens verrechnet, bevor die Eckpunkte damit transformiert werden. Knoten, die über separate Translations-, Rotations- und Skalierungswerte beschrieben sind, werden zunächst in eine Matrix umgerechnet, in der von glTF definierten Quaternion-Form, sodass beide Schreibweisen am selben Ergebnis landen.

Die entstehende GLB-Datei hat eine flache Struktur: eine Szene, ein Knoten je Netz, keine Elternschaft, keine Wiederverwendung. Ein Modell, dessen glTF eine einzelne Schraube vierzigmal über die Hierarchie platzierte, wird zu vierzig Netzen mit vierzig Kopien der Eckpunktdaten. Das Bild bleibt identisch, die Datei wird größer — der Tausch, den jedes Format ohne Instanzierung erzwingt.

Was diese Umwandlung an einem glTF nicht öffnen kann

Draco-komprimierte Geometrie bricht mit einer Meldung ab, die Draco ausdrücklich nennt. KHR_draco_mesh_compression ersetzt die gewöhnlichen Bufferviews durch einen komprimierten Datenstrom, und das Dekodieren bräuchte eine Bibliothek, die hier nicht enthalten ist. Der erneute Export ohne Draco ist in Blender eine Checkbox und in gltf-transform ein Schalter.

Geometrie, die als Dreiecksstreifen, -fächer, Linien oder Punkte gespeichert ist, wird übersprungen statt umgewandelt, weil nur Modus 4 in glTF eine Dreiecksliste ist. Eine Datei, die ausschließlich so etwas enthält, endet mit einer Meldung, dass keine Dreiecksgeometrie gefunden wurde. Eine fehlerhafte JSON-Datei — meist Folge eines abgebrochenen Downloads — wird als nicht lesbar gemeldet statt in etwas Willkürliches umgewandelt zu werden.

Was die GLB-Datei neben dem glTF wiegt, mit dem man begonnen hat

Ein eingebettetes glTF speichert seinen Puffer als Base64, was für je drei Byte vier Zeichen kostet. Dieselbe Geometrie in einen GLB-Binärabschnitt zu verschieben entfernt diesen Aufschlag, ein self-contained glTF schrumpft beim Umwandeln also meist um ungefähr ein Viertel, noch bevor sonst etwas eingerechnet wird.

Danach zieht sich alles ab, was der Umwandler nicht überträgt. Bestand das Volumen des Modells vor allem aus Texturen, kann die GLB-Datei ein kleiner Bruchteil des Originals sein und entsprechend kahl. Ein sinnvoller Test nach der Umwandlung ist die Dreieckszahl: Die Zahl der Indexeinträge geteilt durch drei sollte mit dem übereinstimmen, was das eigene Werkzeug gemeldet hat — stimmt sie nicht, enthielt die Quelle Geometrie in einer Form, die übersprungen wurde.

Wo die Datei bleibt, während ein glTF zur GLB wird

Nirgendwo anders als auf dem eigenen Gerät. Dieses Paar läuft als gewöhnliches JavaScript in der Seite, ohne WebAssembly-Modul zum Nachladen und ohne Anfrage, die das Modell trägt. Das Einlesen, das Verrechnen der Transformationen und der binäre Zusammenbau geschehen alle auf dem eigenen Rechner, weshalb es keine Warteschlange und keine Wartezeit je Datei gibt.

Die freie Obergrenze liegt bei 100 MB, und ein self-contained glTF ist unter den hier verarbeiteten Formaten das eine, das dieser Grenze am ehesten nahekommt, weil Base64 dieselbe Geometrie so aufgebläht speichert wie kein anderer Weg. Wer dieser Grenze nahekommt, ist meist besser bedient, GLB direkt aus dem Werkzeug zu exportieren, das das Modell erzeugt hat.

Mehrere Produktmodelle aus einem Katalog in einem Durchgang

Ein Shop mit dutzenden Produkten exportiert selten ein Modell nach dem anderen von Hand. Liegen mehrere self-contained .gltf-Dateien in einem Ordner, lassen sich alle gemeinsam ablegen — jede wird für sich geprüft und umgewandelt, und die fertigen GLB-Dateien kommen als eine ZIP-Datei zurück, statt jede einzeln hoch- und wieder heruntergeladen werden zu müssen.

Weil das Ganze im Browser läuft, gibt es dabei weder eine Warteschlange noch ein Tageskontingent. Enthält der Ordner eine Mischung aus self-contained Dateien und solchen mit externer .bin-Datei, werden nur die Erstgenannten umgewandelt, die anderen mit der bekannten Meldung übersprungen — ein guter Anlass, vor einem großen Katalog-Export einmal zu prüfen, mit welcher Einstellung das Ausgangswerkzeug Puffer tatsächlich einbettet.

GLTF in GLB umwandeln — so geht es

  1. Leg deine GLTF-Datei auf dieser Seite ab, oder klick, um eine auszuwählen.
  2. Wähl GLB als Ziel. Die Umwandlung läuft in deinem Browser, die Datei wird nicht hochgeladen.
  3. Lade die fertige GLB-Datei herunter.

GLTF und GLB im Vergleich: was sich ändert

GLTF im Vergleich zu GLB
GLTFGLB
Vollständiger NameGL Transmission FormatBinary glTF
Dateiendung.gltf.glb
Medientypmodel/gltf+jsonmodel/gltf-binary
Erstmals veröffentlicht20152016
Herausgegeben vonKhronos GroupKhronos Group
SpezifikationglTF 2.0glTF 2.0
LizenzlageOffener StandardOffener Standard
Heutiger StandAktuellAktuell
Öffnet im BrowserKein BrowserKein Browser
Stattdessen erwogenOBJOBJ

Was erhalten bleibt

Die Animation bleibt. GLTF und GLB fassen beide mehrere Einzelbilder, das Ergebnis bewegt sich also weiterhin.

Das Ergebnis öffnen

Blender, three.js und Babylon.js lesen sowohl GLTF als auch GLB — du kannst das Ergebnis also gegen das Original prüfen, ohne ein zweites Programm zu brauchen.

Wofür die beiden Formate gedacht sind

GLTF stammt von Khronos Group und wurde 2015 veröffentlicht. Festgehalten ist das in glTF 2.0 — lohnt sich zu kennen, wenn die Datei das Programm überleben soll, das sie geschrieben hat.

GLB kommt von Khronos Group und stammt aus 2016, festgehalten in glTF 2.0. Blender, three.js und Babylon.js lesen das Format.

GLTF zu GLB: häufige Fragen

Werden meine GLTF-Dateien irgendwo hochgeladen?

Nein. Diese Umwandlung läuft vollständig in deinem Browser, die Datei verlässt dein Gerät also nicht. Du kannst das selbst nachprüfen: Öffne den Netzwerk-Tab der Entwicklerwerkzeuge und wandle etwas um. Zu sehen sind die Seite selbst und die Statistik- und Werbeanfragen, mit denen dieser Dienst bezahlt wird — und keine einzige, die deine Datei trägt.

Ist das Umwandeln von GLTF in GLB kostenlos?

Ja. Kein Konto, kein Wasserzeichen und kein Tageskontingent, das sich verbraucht — es läuft auf deinem eigenen Rechner, du darfst also so oft wiederkommen, wie du willst. Dateien bis 100 MB verarbeitet der Browser, 100 auf einmal.

Geht beim Umwandeln von GLTF in GLB Qualität verloren?

GLTF und GLB beschreiben Inhalte auf grundverschiedene Weise. Die Umwandlung ist deshalb ein Nachbau und keine Kopie: originalgetreu, aber nicht Byte für Byte dasselbe. Nur die Geometrie. Materialien, Farben, Texturen und Animation kommen nicht mit, und ein mehrfach platziertes Modell kommt so zurück, dass jede Kopie fest an ihrer eigenen Position sitzt.

Bleibt die Animation bei GLTF zu GLB erhalten?

Die Animation bleibt. GLTF und GLB fassen beide mehrere Einzelbilder, das Ergebnis bewegt sich also weiterhin.

Mehr über diese Formate