aspose.info
DA

GLB

Opdateret

Hvad er en GLB fil?

GLB er den binære filformatrepræsentation af 3D-modeller gemt i GL-transmissionsformatet (glTF). Information om 3D-modeller såsom nodehierarki, kameraer, materialer, animationer og mesh i binært format. Dette binære format gemmer glTF-aktivet (JSON, .bin og billeder) i en binær blob. Det undgår også spørgsmålet om stigning i filstørrelse, som sker i tilfælde af glTF. GLB-filformat resulterer i kompakte filstørrelser, hurtig indlæsning, komplet 3D-scenerepræsentation og udvidelsesmuligheder til videreudvikling. Formatet bruger model/gltf-binær som MIME-type.

GLB-filformat - flere oplysninger

Indholdsleveringsmetoderne brugt af glTF resulterer i ekstra behandling for at afkode de base-64-kodede binære data og øger også filstørrelsen med 33 %. Disse leveringsmetoder, som bidrog til dannelsen af GLB-filformat, omfatter:

  • glTF JSON peger på eksterne binære data (geometri, nøglerammer, skins) og billeder.

  • glTF JSON indlejrer base64-kodede binære data og billeder inline ved hjælp af data-URI’er.

GLB som containerformat blev introduceret som binært filformat til repræsentation af glTF-aktiv i en binær blob for at undgå problemer forårsaget af glTF. GLB-filformatet specifications skal henvises til enhver læser/skriverimplementering af samme til applikationsudvikling.

GLB filstruktur

GLB-filformatet er baseret på little endian, og dets struktur viser, at det indeholder:

  • En 12-byte præamble med titlen overskriften.

  • En eller flere chunks, der indeholder JSON-indhold og binære data.

GLB Header

GLB filformatheaderen består af tre 4-byte poster:

  • uint32 magi - magi er lig med 0x46546C67. Det er ASCII-streng glTF og kan bruges til at identificere data som binær glTF

  • uint32 version - angiver versionen af binært glTF containerformat

  • uin32 længde - den samlede længde af den binære glTF, inklusive Header og alle bidder i bytes

Klumper

Hver chunk i en GLB-fil har følgende struktur:

uint32uint32ubyte[]
chunkLengthchunkTypechunkData
  • chunkLength - længden af chunkData i bytes

  • chunkType - angiver angiver typen af chunk

  • chunkData - binær nyttelast af chunk

hvor chunk typerne er:

#Chunk TypeASCIIBeskrivelseForekomster
1.0x4E4F534AJSONStruktureret JSON-indhold1
2.0x004E4942BINBinær buffer0 eller 1

Starten og slutningen af hver chunk skal justeres til 4-byte-grænsen, og polstring skal bruges til dette formål.

Struktureret JSON-indhold

Dette bør være den allerførste del af binær glTF-aktiv og gør det muligt for implementeringen gradvist at hente ressourcer fra efterfølgende bidder. Dette giver også mulighed for kun at læse et udvalgt undersæt af ressourcer fra et binært glTF-aktiv, såsom den groveste LOD af en maske. For at opfylde tilpasningskravene skal denne chunk være polstret med efterfølgende mellemrumstegn (0x20).

Binær buffer

Denne del indeholder den binære nyttelast til geometri, animationsnøgleframes, skins og billeder. Det bør være den anden del af det binære glTF-aktiv og skal være polstret med efterfølgende nuller (0x00) for at opfylde tilpasningskravene.

Referencer

Se også