aspose.info
SV

GLB

Uppdaterad

Vad är GLB fil?

GLB är den binära filformatsrepresentationen av 3D-modeller sparade i GL Transmission Format (glTF). Information om 3D-modeller som nodhierarki, kameror, material, animationer och mesh i binärt format. Detta binära format lagrar glTF-tillgången (JSON, .bin och bilder) i en binär blob. Det undviker också problemet med ökning av filstorleken som händer i händelse av glTF. GLB-filformat resulterar i kompakta filstorlekar, snabb laddning, komplett 3D-scenerepresentation och utökningsmöjligheter för vidareutveckling. Formatet använder model/gltf-binary som MIME-typ.

GLB-filformat - Mer information

Innehållsleveransmetoderna som används av glTF resulterar i extra bearbetning för att avkoda bas-64-kodade binära data och ökar även filstorleken med 33 %. Dessa leveransmetoder, som bidrog till bildandet av GLB-filformat, inkluderar:

  • glTF JSON pekar på externa binära data (geometri, nyckelramar, skal) och bilder.
  • glTF JSON bäddar in base64-kodad binär data och bilder inline med hjälp av data-URI.

GLB som containerformat introducerades som binärt filformat för representation av glTF-tillgång i en binär blob för att undvika problem som orsakas av glTF. GLB-filformat specifikationer bör hänvisas till alla läsare/skrivare-implementeringar av detsamma för applikationsutveckling .

GLB-filstruktur

GLB-filformatet är baserat på little endian och dess struktur visar att det innehåller:

  • En 12-byte ingress med titeln rubriken.
  • En eller flera bitar som innehåller JSON-innehåll och binär data.

GLB Header

GLB-filformatshuvudet består av tre 4-byte-poster:

  • uint32 magi - magi är lika med 0x46546C67. Det är ASCII-sträng glTF och kan användas för att identifiera data som binär glTF
  • uint32 version - indikerar versionen av binärt glTF containerformat
  • uin32 längd - den totala längden av binär glTF, inklusive Header och alla bitar i byte

Bitar

Varje bit i en GLB-fil har följande struktur:

uint32uint32ubyte[]
chunkLengthchunkTypechunkData
  • chunkLength - längden på chunkData i byte
  • chunkType - indikerar indikerar typen av chunk
  • chunkData - binär nyttolast av chunk

där chunktyperna är:

#Chunk TypeASCIIBeskrivningFörekomster
1.0x4E4F534AJSONStrukturerat JSON-innehåll1
2.0x004E4942BINBinär buffert0 eller 1

Början och slutet av varje del måste anpassas till 4-byte-gränsen och utfyllnad bör användas för detta ändamål.

Strukturerat JSON-innehåll

Detta bör vara den allra första biten av binär glTF-tillgång och gör det möjligt för implementeringen att successivt hämta resurser från efterföljande bitar. Detta ger också möjligheten att endast läsa en vald delmängd av resurser från en binär glTF-tillgång, såsom den grövsta LOD av ett nät. För att uppfylla inriktningskraven måste denna bit vara vadderad med efterföljande mellanrumstecken (0x20).

Binär buffert

Den här biten innehåller den binära nyttolasten för geometri, animerade nyckelramar, skal och bilder. Det bör vara den andra biten av den binära glTF-tillgången och måste fyllas med efterföljande nollor (0x00) för att uppfylla inriktningskraven.

Referenser

Se även