aspose.info
FIL

GLB

Na-update

Ano ang GLB file?

Ang GLB ay ang binary file format na representasyon ng mga 3D na modelo na naka-save sa GL Transmission Format (glTF). Impormasyon tungkol sa mga modelong 3D gaya ng hierarchy ng node, camera, materyales, animation at mesh sa binary na format. Iniimbak ng binary format na ito ang glTF asset (JSON, .bin at mga larawan) sa isang binary blob. Iniiwasan din nito ang isyu ng pagtaas sa laki ng file na nangyayari sa kaso ng glTF. Ang GLB file format ay nagreresulta sa mga compact na laki ng file, mabilis na paglo-load, kumpletong representasyon ng eksena sa 3D, at extensibility para sa karagdagang pag-unlad. Gumagamit ang format ng modelo/gltf-binary bilang uri ng MIME.

GLB File Format - Higit pang Impormasyon

Ang mga paraan ng paghahatid ng nilalaman na ginagamit ng glTF ay nagreresulta sa karagdagang pagpoproseso upang i-decode ang base-64 na naka-encode na binary data at pinapataas din ang laki ng file ng 33%. Ang mga paraan ng paghahatid na ito, na nag-ambag sa pagbuo ng format ng GLB file, ay kinabibilangan ng:

  • Ang glTF JSON ay tumuturo sa panlabas na binary data (geometry, key frame, skin), at mga larawan.
  • Ang glTF JSON ay nag-embed ng base64-encoded binary data, at mga larawang inline gamit ang mga URI ng data.

Ang GLB bilang isang container na format ay ipinakilala bilang binary file format para sa representasyon ng glTF asset sa isang binary blob upang maiwasan ang mga isyu na dulot ng glTF. Ang format ng GLB file mga detalye ay dapat i-refer para sa anumang pagpapatupad ng reader/writer ng pareho para sa pagbuo ng mga application .

GLB File Structure

Ang format ng GLB file ay batay sa maliit na endian at ipinapakita ng istraktura nito na naglalaman ito ng:

  • A 12-byte preamble, entitled the header.
  • One or more chunks that contains JSON content and binary data.

GLB Header

Ang GLB file format header ay binubuo ng tatlong 4-byte na entry:

  • uint32 magic - magic equals 0x46546C67. It is ASCII string glTF, and can be used to identify data as Binary glTF
  • uint32 version - indicates the version of Binary glTF container format
  • uin32 length - the total length of the Binary glTF, including Header and all chunks in bytes

Chunks

Ang bawat chunk sa isang GLB file ay may sumusunod na istraktura:

uint32uint32ubyte[]
chunkLengthchunkTypechunkData
  • chunkLength - length of chunkData in bytes
  • chunkType - indicates indicates the type of chunk
  • chunkData - binary payload of chunk

kung saan ang mga uri ng tipak ay:

#Chunk TypeASCIIDescriptionOccurrences
1.0x4E4F534AJSONStructured JSON content1
2.0x004E4942BINBinary buffer0 or 1

Ang simula at pagtatapos ng bawat chunk ay dapat na nakahanay sa 4-byte na hangganan at ang padding ay dapat gamitin para sa layuning ito.

Nakabalangkas na Nilalaman ng JSON

Ito dapat ang pinakaunang bahagi ng Binary glTF asset at binibigyang-daan ang pagpapatupad na unti-unting makuha ang mga mapagkukunan mula sa mga kasunod na chunks. Nagbibigay din ito ng kakayahang magbasa lamang ng isang napiling subset ng mga mapagkukunan mula sa isang Binary glTF asset gaya ng pinakamagaspang na LOD ng isang mesh. Upang matugunan ang mga kinakailangan sa pag-align, dapat na may padded ang chunk na ito ng mga trailing Space char (0x20).

Binary Buffer

Ang chunk na ito ay naglalaman ng binary payload para sa geometry, animation key frame, skin, at mga larawan. Ito dapat ang pangalawang bahagi ng Binary glTF asset at dapat na may padded na may trailing zeros (0x00) upang matugunan ang mga kinakailangan sa alignment.

Mga Sanggunian

Tingnan din