aspose.info
TH

จีแอลบี

อัปเดตเมื่อ

ไฟล์ GLB คืออะไร??

GLB คือการแสดงรูปแบบไฟล์ไบนารีของโมเดล 3 มิติที่บันทึกไว้ใน GL Transmission Format (glTF) ข้อมูลเกี่ยวกับโมเดล 3 มิติ เช่น ลำดับชั้นของโหนด กล้อง วัสดุ ภาพเคลื่อนไหว และเมชในรูปแบบไบนารี รูปแบบไบนารีนี้เก็บเนื้อหา glTF (JSON, .bin และรูปภาพ) ไว้ในไบนารีบล็อบ นอกจากนี้ยังหลีกเลี่ยงปัญหาการเพิ่มขนาดไฟล์ซึ่งเกิดขึ้นในกรณีของ glTF รูปแบบไฟล์ GLB มีขนาดไฟล์ที่กะทัดรัด โหลดเร็ว การแสดงฉาก 3 มิติที่สมบูรณ์ และความสามารถในการขยายสำหรับการพัฒนาต่อไป รูปแบบนี้ใช้ model/gltf-binary เป็นประเภท MIME

รูปแบบไฟล์ GLB - ข้อมูลเพิ่มเติม

วิธีการจัดส่งเนื้อหาที่ใช้โดย glTF ทำให้เกิดการประมวลผลเพิ่มเติมเพื่อถอดรหัสข้อมูลไบนารีที่เข้ารหัสฐาน 64 และเพิ่มขนาดไฟล์ขึ้น 33% วิธีการจัดส่งเหล่านี้มีส่วนทำให้เกิดรูปแบบไฟล์ GLB รวมถึง:

  • glTF JSON ชี้ไปที่ข้อมูลไบนารีภายนอก (เรขาคณิต คีย์เฟรม สกิน) และรูปภาพ
  • glTF JSON ฝังข้อมูลไบนารีที่เข้ารหัส base64 และรูปภาพแบบอินไลน์โดยใช้ data URI

GLB เป็นรูปแบบคอนเทนเนอร์ถูกนำมาใช้เป็นรูปแบบไฟล์ไบนารีสำหรับการแสดงเนื้อหา glTF ใน binary blob เพื่อหลีกเลี่ยงปัญหาที่เกิดจาก glTF รูปแบบไฟล์ GLB ข้อมูลจำเพาะ ควรได้รับการอ้างอิงสำหรับผู้อ่าน/ผู้เขียนใดๆ ก็ตามที่นำไปใช้ในการพัฒนาแอปพลิเคชัน .

โครงสร้างไฟล์ GLB

รูปแบบไฟล์ GLB ขึ้นอยู่กับ endian น้อยและโครงสร้างแสดงให้เห็นว่าประกอบด้วย:

  • คำปรารภขนาด 12 ไบต์ ใช้ชื่อส่วนหัว
  • หนึ่งชิ้นขึ้นไปที่มีเนื้อหา JSON และข้อมูลไบนารี

ส่วนหัว GLB

ส่วนหัวของรูปแบบไฟล์ GLB ประกอบด้วยรายการ 4 ไบต์สามรายการ:

  • มายากล uint32 - มายากล เท่ากับ 0x46546C67 เป็นสตริง ASCII glTF และสามารถใช้เพื่อระบุข้อมูลเป็น Binary glTF
  • เวอร์ชัน uint32 - ระบุเวอร์ชันของรูปแบบคอนเทนเนอร์ Binary glTF
  • uin32 length - ความยาวรวมของ Binary glTF รวมถึง Header และ chunks ทั้งหมดเป็นไบต์

####ก้อน

แต่ละอันในไฟล์ GLB มีโครงสร้างดังต่อไปนี้:

uint32uint32ubyte[]
chunkLengthchunkTypechunkData
  • chunkLength - ความยาวของ chunkData หน่วยเป็นไบต์
  • chunkType - บ่งชี้ถึงประเภทของก้อน
  • chunkData - เพย์โหลดไบนารีของก้อน

โดยที่ประเภทก้อนคือ:

#Chunk TypeASCIIDescriptionOccurrences
1.0x4E4F534AJSONเนื้อหา JSON ที่มีโครงสร้าง1
2.0x004E4942BINบัฟเฟอร์ไบนารี0 หรือ 1

จุดเริ่มต้นและจุดสิ้นสุดของแต่ละอันต้องสอดคล้องกับขอบเขต 4 ไบต์ และควรใช้ช่องว่างภายในเพื่อจุดประสงค์นี้

เนื้อหา JSON ที่มีโครงสร้าง

นี่ควรเป็นส่วนแรกของเนื้อหา Binary glTF และเปิดใช้งานการดำเนินการเพื่อดึงทรัพยากรจากส่วนต่อ ๆ ไป นอกจากนี้ยังให้ความสามารถในการอ่านเฉพาะชุดทรัพยากรย่อยที่เลือกจากสินทรัพย์ไบนารี glTF เช่น LOD ที่หยาบที่สุดของตาข่าย เพื่อให้เป็นไปตามข้อกำหนดการจัดตำแหน่ง ส่วนนี้ต้องเสริมด้วย Space chars ต่อท้าย (0x20)

บัฟเฟอร์ไบนารี

ส่วนนี้มีเพย์โหลดไบนารีสำหรับรูปทรงเรขาคณิต คีย์เฟรมแอนิเมชัน สกิน และรูปภาพ ควรเป็นส่วนที่สองของสินทรัพย์ไบนารี glTF และต้องเสริมด้วยศูนย์ต่อท้าย (0x00) เพื่อให้เป็นไปตามข้อกำหนดการจัดตำแหน่ง

อ้างอิง

ดูเพิ่มเติม