glTF ไบนารี (.glb)
ISO/IEC มาตรฐานBinary glTF (GLB) คือรูปแบบการจัดเก็บไฟล์ไบนารีแบบรวมในไฟล์เดียวของมาตรฐาน glTF 2.0 ซึ่งได้รับการยกย่องอย่างกว้างขวางว่าเป็น 'JPEG ของ 3D' สำหรับกราฟิกสามมิติบนเว็บ, ความจริงเสริม (AR) และเอนจินเกมแบบเรียลไทม์
แปลง GLTF เป็น GLB
ตัวแปลงจาก GLTF เป็น GLB ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบและดู Metadata
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GLB โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ GLB โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
67 6C 54 46การแสดงผลรูปแบบ ASCII: glTF
มาตรฐาน: ISO/IEC 12113:2022 / Khronos Open Standard
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | 12-byte binary header ('glTF', version, length) followed by JSON chunk (CHUNK 0) and binary buffer chunk (CHUNK 1) |
| การบีบอัด | DRACO mesh geometry compression, KHR_texture_basisu (KTX2/Basis Universal GPU textures), and ExtMeshopt |
| การจัดลำดับไบต์ (Byte Endianness) | Little-Endian (Intel x86 / WebGL standard) |
| พื้นที่สี | sRGB textures, Linear PBR roughness/metallic channels |
| ช่องสัญญาณและโครงสร้าง | PBR materials (Metallic-Roughness), skinned skeletal meshes, morph targets, animations, cameras, and lights |
| ขนาดสูงสุด | Unbounded vertex and triangle count (supports multi-gigabyte models) |
| ความโปร่งใส | Alpha coverage (MASK), alpha blending (BLEND), and volumetric transmission |
| การสตรีมและแบบโปรเกรสซีฟ | Single self-contained file with binary offset tables for direct GPU VBO loading |
ตารางเปรียบเทียบทางเทคนิค: GLB กับคู่แข่ง
| คุณลักษณะทางเทคนิค | GLB (ปัจจุบัน) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| รูปแบบการจัดเก็บ (Packaging Model) | ไฟล์ไบนารีเดี่ยวในตัว | JSON + ไฟล์ .bin และพื้นผิวภายนอก | ไฟล์เก็บถาวร ZIP ของสคีมา USD และพื้นผิว | ไบนารี/ASCII แบบกรรมสิทธิ์ (Proprietary) |
| มาตรฐานเว็บและ AR | มาตรฐานสากล WebGL และ Android AR | มาตรฐานสากล WebGL (หลายไฟล์) | มาตรฐาน Apple iOS Quick Look AR | มาตรฐานการนำเข้าของเอนจินเกมเดสก์ท็อป |
| โมเดลวัสดุ | มาตรฐาน glTF PBR Metallic-Roughness | มาตรฐาน glTF PBR | สคีมาวัสดุ Universal Pixar PBR | เชดเดอร์ Phong/Lambert/PBR แบบกรรมสิทธิ์ |
| ประสิทธิภาพการอ่านของ GPU | ทันที (การแมปหน่วยความจำโดยตรง) | เร็ว (คำขอเครือข่ายหลายรายการ) | เร็ว (รายการ ZIP ที่ไม่ได้บีบอัด) | ช้า (ต้องมีการแยกวิเคราะห์ที่ซับซ้อน) |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
โมเดล 3D เรนเดอร์โดยไม่มีพื้นผิวหรือแสดงเป็นพื้นผิวสีดำทึบ
สาเหตุหลัก: ส่วนข้อมูล (chunk) ของพื้นผิวฝังตัวเสียหาย หรืออ้างอิงพื้นผิว PBR metallic-roughness หายไป
การกู้คืน: ตรวจสอบและซ่อมแซมแอดเดรสออฟเซ็ตของส่วนข้อมูลโดยใช้ File2File 3D Converter หรือ glTF-Transform
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวแยกวิเคราะห์ GLB ประมวลผลส่วนข้อมูลข้อความ JSON ร่วมกับบัฟเฟอร์ไบนารีตามอำเภอใจ ซึ่งอาจทริกเกอร์บัฟเฟอร์โอเวอร์โฟลว์หากความยาวของบัฟเฟอร์ไม่ตรงกัน
เวกเตอร์การโจมตีที่ทราบ
- การอ่านบัฟเฟอร์เกินขอบเขต (Buffer over-read) เมื่อ bufferView byteOffset + byteLength มีค่าเกินความยาวส่วนข้อมูลไบนารี
- การอ่านดัชนีจุดยอดนอกขอบเขตระหว่างการทำงานของ WebGL drawElements
- การปฏิเสธการให้บริการ (Denial of service) ผ่านลูปการคลายการบีบอัด Draco ที่ผิดปกติ
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- สมบูรณ์ในตัวเอง: บรรจุเรขาคณิต 3D, วัสดุ PBR, พื้นผิว (PNG/JPEG/KTX2) และแอนิเมชันโครงกระดูกไว้ในไฟล์เดียว
- อัปโหลดเข้า GPU โดยตรง: บัฟเฟอร์เรขาคณิตแบบไบนารีตรงกับรูปแบบหน่วยความจำ WebGL / Vulkan โดยไม่มีภาระในการแยกวิเคราะห์ (parsing) บน CPU
- มาตรฐานที่ไร้ข้อกังขาสำหรับ WebGL, WebGPU, การแสดงตัวอย่างสินค้า 3D บนอีคอมเมิร์ซ และความจริงเสริมบนมือถือ
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ลักษณะที่เป็นไบนารีทำให้การตรวจสอบข้อความหรือแก้ไขด้วยตนเองทำได้ยากหากไม่มีเครื่องมือ 3D เฉพาะทาง
- ต้องใช้ไลบรารีการคลายการบีบอัด Draco หรือ Basis Universal เมื่อใช้ส่วนขยายการบีบอัดขั้นสูง
- แพลตฟอร์มของ Apple นิยมใช้ USDZ สำหรับ iOS Quick Look AR แบบเนทีฟ ซึ่งจำเป็นต้องมีการแปลงรูปแบบจาก GLB
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- 4 ไบต์แรกของทุกไฟล์ GLB คือ 0x67 0x6C 0x54 0x46 ซึ่งสะกดเป็นข้อความ ASCII ว่า 'glTF'
- เมื่อคุณดูรองเท้าผ้าใบ 3D บนเบราว์เซอร์สมาร์ทโฟน คุณกำลังมองหาโมเดล GLB แบบโต้ตอบอย่างแน่นอน
- GLB ถูกออกแบบมาเป็นพิเศษเพื่อให้ฮาร์ดแวร์กราฟิกสามารถอ่านบัฟเฟอร์จุดยอด (vertex buffers) ตรงจากดิสก์เข้าสู่ VRAM ได้โดยไม่ต้องแปลงใดๆ
คำถามทางเทคนิคที่พบบ่อย
ความแตกต่างระหว่าง glTF และ GLB คืออะไร
glTF คือไฟล์ JSON ที่อ้างอิงถึงเรขาคณิต .bin ภายนอกและไฟล์พื้นผิวรูปภาพแยกต่างหาก แต่ GLB จะนำชุดข้อมูลทั้งหมดนั้นมารวมกันไว้ในไฟล์ไบนารีขนาดกะทัดรัดไฟล์เดียว
ฉันจะแปลง GLB เป็น USDZ สำหรับ Apple AR ได้อย่างไร
คุณสามารถแปลงโมเดล GLB เป็นไฟล์ USDZ ที่พร้อมใช้งานสำหรับ Apple ได้ด้วยคลิกเดียวโดยใช้ File2File.app บนเว็บเบราว์เซอร์ของคุณ
ฉันสามารถเปิดไฟล์ GLB ใน Blender ได้หรือไม่
ได้ Blender มีเครื่องมือผู้นำเข้าและส่งออก glTF/GLB ประสิทธิภาพสูงที่ติดตั้งมาให้ในตัวซอฟต์แวร์
คู่การแปลงไฟล์ GLB ที่เกี่ยวข้อง
การแปลงไฟล์ glTF JSON เป็นคอนเทนเนอร์ glTF Binary จะรวมไฟล์ข้อความแยก บัฟเฟอร์ไบนารี และพื้นผิวเข้าไว้ในไฟล์เดียวเพื่อให้การส่ง2 ผ่านเว็บทำได้รวดเร็วยิ่งขึ้น
การแปลงไฟล์ GLB เป็น GLTF จะแยกคอนเทนเนอร์ไบนารีเดี่ยวออกเป็นไฟล์ข้อความและไฟล์แอสเซทแยกกัน เพื่อให้นักพัฒนาสามารถแก้ไขโค้ดเนื้อผิวและเรขาคณิตสามมิติได้อย่างง่ายดาย