JPEG aus der 3D-Welt. Was ist glTF?

Definition und eine kurze Geschichte


GLTF (GL Transmission Format) ist ein Dateiformat zum Speichern von 3D-Szenen und -Modellen, das äußerst einfach zu verstehen ist (die Struktur ist im JSON-Standard geschrieben), erweiterbar ist und problemlos mit modernen Webtechnologien interagiert. Dieses Format komprimiert dreidimensionale Szenen gut und minimiert die Laufzeitverarbeitung für Anwendungen, die WebGL und andere APIs verwenden. glTF wird jetzt von der Khronos Group als JPEG aus der 3D-Welt aktiv beworben.


GlTF soll ein effizientes, kompatibles Asset Delivery-Format sein, das die Größe von 3D-Szenen komprimiert und die Laufzeitverarbeitung durch Anwendungen mit WebGL und anderen APIs minimiert. glTF definiert auch ein gemeinsames Veröffentlichungsformat für Tools und Dienste für 3D-Inhalte.


Die erste Erwähnung von glTF stammt aus dem Jahr 2012, wurde jedoch ab dem 19. Oktober 2015 zusammen mit der Ankündigung der glTF 1.0-Spezifikation verwendet. Im Moment wird die 2. Version der Spezifikation (glTF 2.0) verwendet, die am 3. März 2017 veröffentlicht wurde. Als nächstes werden wir nur über glTF 2.0 sprechen.
Eine ausführliche Beschreibung der Innenräume dieses Formats finden Sie in meinen nachfolgenden Veröffentlichungen: im ersten Teil und im zweiten Teil


Die Basis von glTF und seine Vorteile


glTF basiert auf 2 Dateien: JSON zur Beschreibung der Struktur der gesamten 3D-Szene und der Binärdatei, zum Speichern aller Daten aus der Szene, einschließlich Texturkarten, die in die Binärdatei „eingenäht“ oder von externen Dateien gespeichert werden können. Es gibt auch eine binäre Version von glTF namens GLB, deren einziger Unterschied darin besteht, dass alles in einer 1-Meter-Datei mit der Erweiterung GLB gespeichert ist.
Als zusätzliche Vorteile in glTF können Sie Folgendes hervorheben:


  • Eine klare Hierarchie von Objekten in der Struktur der 3D-Szene
  • Speichern von Szeneninformationen wie Lichtquellen und Kameras
  • Unterstützung für Skelettanimation (Gelenkanimation)
  • Zuverlässigere Materialien und Shader.

Wenn Sie glTF und COLLADA vergleichen, sind die von ihnen unterstützten Funktionen sehr ähnlich. Wenn Sie jedoch bedenken, dass glTF in erster Linie ein "Übertragungsformat" ist, besteht sein unbestrittener Vorteil in der guten Kompatibilität mit Webtechnologien. Um eine Analogie zu geben, würde ich die Formate .PSD (Adobe Photoshop) und .JPG verwenden. Das erste ist gut für die Bearbeitung des Quellmaterials, aber für die Speicherung und Verwendung im Internet verwenden sie dennoch JPG.


Heute kommt 3D aus völlig unterschiedlichen Quellen mit jeweils eigenem Format zum Kunden. Nicht alle Informationen werden vom Benutzer benötigt, nicht alle Formate können in seiner Anwendung geöffnet werden. Die Szenenstruktur muss analysiert und die 3D-Geometriedaten in das von der Grafik-API geforderte Format konvertiert werden. 3D-Daten müssen in den Speicher der Grafikkarte übertragen werden. Anschließend kann der Rendervorgang mithilfe aufeinanderfolgender Aufrufe der Grafik-API beschrieben werden. Daher muss jede ausführbare Anwendung ihre eigenen Importeure, Downloader oder Konverter für alle unterstützten Dateiformate erstellen, wie auf der Folie gezeigt.


Bild


Das GLTF-Format definiert einen Standard für die Darstellung von 3D-Inhalten in einer Form, die zur Verwendung in einer Anwendung zur Laufzeit geeignet ist. Bestehende Formate eignen sich nicht gut für die Übertragung über das Internet: Einige enthalten nur Informationen über die Geometrie, andere enthalten absolut alles und erweisen sich als zu umfangreich und schwer zu analysieren, ganz zu schweigen von der Ausführung in Echtzeit (Laufzeit).


GLTF wurde entwickelt, um dieses Problem zu lösen. Dies ist kein „anderes Dateiformat“, von dem es bereits viele gibt, sondern die Definition des Übertragungsformats von 3D-Szenen!


Die von JSON beschriebene Szenenstruktur kann leicht analysiert werden, 3D-Daten werden in einer Form gespeichert, die leicht gelesen und direkt von grafischen APIs verwendet werden kann, und daher besteht keine Notwendigkeit zum Dekodieren oder Vorverarbeiten von 3D-Daten. Auf diese Weise kann GLTF dazu beitragen, die Lücke zwischen der Erstellung und dem Rendern von Inhalten zu schließen.


Bild

Source: https://habr.com/ru/post/de436686/


All Articles