เครื่องมือแปลงไฟล์ glTF JSON เป็น glTF Binary
การแปลงไฟล์ glTF JSON เป็นคอนเทนเนอร์ glTF Binary จะรวมไฟล์ข้อความแยก บัฟเฟอร์ไบนารี และพื้นผิวเข้าไว้ในไฟล์เดียวเพื่อให้การส่ง2 ผ่านเว็บทำได้รวดเร็วยิ่งขึ้น
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
| ข้อกำหนด | GLTF | GLB |
|---|---|---|
| ประเภท MIME | model/gltf+json | model/gltf-binary |
| ประเภท | runtime 3D asset transmission | self-contained binary 3D container |
| การบีบอัด | lossless JSON manifest + external binary buffers | binary packaged JSON, buffers, and textures |
| ข้อกำหนดมาตรฐาน | Khronos glTF 2.0 Specification | Khronos glTF 2.0 Binary Container |
| ส่วนหัว Magic Bytes | 7B 22 61 73 73 65 74 22 ({"asset" JSON root) | 67 6C 54 46 02 00 00 00 (glTF version 2 binary container) |
ภาพรวมรูปแบบและการใช้งาน
รูปแบบ glTF JSON จัดเก็บฉาก 3 มิติโดยใช้โครงสร้างข้อความธรรมดา ไฟล์ข้อความนี้ชี้ไปยังไฟล์ไบนารีภายนอกและไฟล์ภาพพื้นผิว แม้ว่าการตั้งค่านี้จะช่วยให้นักพัฒนาสามารถแก้ไขโหนดวัสดุและเรขาคณิตได้โดยตรงในโปรแกรมแก้ไขโค้ด แต่การย้ายโมเดลจำเป็นต้องจัดการไฟล์หลายไฟล์พร้อมกัน หากไฟล์พื้นผิวไฟล์ใดหายไปหรือเส้นทางไฟล์เสียหาย โมเดล 3 มิติจะไม่สามารถโหลดได้อย่างถูกต้องในเบราว์เซอร์และเอนจิ้นเกม การแปลง glTF JSON เป็น glTF Binary จะรวมชิ้นส่วนที่แยกจากกันเหล่านั้นทั้งหมดให้เป็นไฟล์เดียว ศิลปิน 3 มิติและนักพัฒนาเว็บใช้ขั้นตอนนี้ก่อนเผยแพร่เนื้อหาไปยังเซิร์ฟเวอร์เว็บสำหรับการใช้งานจริง หรือโหลดลงในโปรแกรมดูความเป็นจริงเสริม การมีไฟล์เพียงไฟล์เดียวช่วยลดจำนวนคำขอ HTTP ซึ่งช่วยเพิ่มความเร็วในการโหลดสำหรับผู้ใช้ที่เข้าชมหน้าสินค้าอีคอมเมิร์ซและแอปพลิเคชัน 3 มิติเชิงโต้ตอบบนเว็บ
ข้อมูลทางเทคนิคและรายละเอียดตัวแปลงสัญญาณ (Codec)
รูปแบบ glTF JSON ใช้ MIME type model/gltf+json โดยอาศัยไฟล์ข้อความ JSON ควบคู่ไปกับไฟล์ bin และรูปภาพภายนอก ในทางตรงกันข้าม รูปแบบ GLB ใช้ MIME type model/gltf-binary และบรรจุทุกอย่างลงในคอนเทนเนอร์ไบนารีไฟล์เดียว ไฟล์ GLB เริ่มต้นด้วยส่วนหัวขนาด 12 ไบต์ ซึ่งประกอบด้วยตัวเลขวิเศษ (magic number) 4 ไบต์ที่ตั้งค่าเป็น 0x46546C67 หมายเลขเวอร์ชัน 4 ไบต์ และความยาวไฟล์รวม 4 ไบต์ ส่วนหัวนี้ตามด้วยส่วนย่อย (chunks) ที่จัดเก็บไฟล์ JSON และข้อมูลบัฟเฟอร์ไบนารี ทั้งสองรูปแบบไม่เปลี่ยนแปลงเรขาคณิตโครงข่ายพื้นฐานหรือข้อมูลพิกเซลพื้นผิวในระหว่างการแปลง ซึ่งหมายความว่ากระบวนการนี้ไม่มีการสูญเสียข้อมูลอย่างเคร่งครัด
ความเข้ากันได้ของระบบปฏิบัติการและเบราว์เซอร์
ทั้งสองรูปแบบทำงานโดยกำเนิดในเว็บเบราว์เซอร์สมัยใหม่ที่ใช้ตัวเรนเดอร์ WebGL และ WebGPU โดยไม่ต้องติดตั้งปลั๊กอินของบุคคลที่สาม ระบบปฏิบัติการเดสก์ท็อปอย่าง Windows และ macOS รองรับการดูไฟล์ GLB ผ่านเครื่องมือดูตัวอย่างไฟล์ในตัว แพลตฟอร์มมือถือรวมถึง iOS และ Android สามารถเรนเดอร์ไฟล์ GLB ได้โดยตรงภายในแอปพลิเคชัน Quick Look และ Scene Viewer ของความเป็นจริงเสริม
💡 ข้อมูลที่เป็นประโยชน์
เก็บรักษาพื้นผิวต้นฉบับของคุณในรูปแบบ PNG หรือ JPEG ก่อนที่จะบรรจุลงในไฟล์ GLB เพื่อรักษาความคมชัดของภาพโดยไม่ทำให้ขนาดของคอนเทนเนอร์ใหญ่เกินไป
การเปรียบเทียบรูปแบบและข้อกำหนดทางเทคนิค
โมเดล 3 มิติขนาด 15 MB ทั่วไปที่แยกไฟล์ออกเป็น glTF JSON และพื้นผิวภายนอกหลายไฟล์ จะใช้เวลาดาวน์โหลดประมาณ 3.0 วินาทีบนการเชื่อมต่อ 4G มาตรฐาน, 0.8 วินาทีบน 5G และ 0.2 วินาทีบนเครือข่ายไฟเบอร์
คำถามที่พบบ่อย
จะแปลง glTF JSON เป็น glTF Binary โดยไม่สูญเสียคุณภาพได้อย่างไร
การแปลง glTF JSON เป็น GLB ไม่มีกระบวนการสูญเสียข้อมูล เนื่องจากขั้นตอนนี้เป็นการบรรจุไฟล์ข้อความ บัฟเฟอร์ไบนารี และไฟล์ภาพที่มีอยู่แล้วให้กลับเข้าไปในคอนเทนเนอร์เดียว โดยไม่เปลี่ยนแปลงข้อมูลจุดยอดหรือบีบอัดพิกเซลพื้นผิวเพิ่มเติม
ความแตกต่างระหว่าง glTF JSON และ glTF Binary คืออะไร
glTF JSON ใช้ไฟล์ข้อความที่มนุษย์อ่านได้ซึ่งอ้างอิงถึงไฟล์ bin และภาพภายนอก ในขณะที่ glTF Binary จะบรรจุไฟล์ข้อความ ข้อมูลเรขาคณิต และพื้นผิวทั้งหมดไว้ในไฟล์เดียวที่มีส่วนหัวแบบไบต์พิเศษ