GLB vs glTF: ต่างกันตรงไหน?
GLB vs glTF เป็นเรื่องการแพ็ก ไม่ใช่ข้อมูล: ไฟล์ .gltf คือ JSON ที่อ่านได้พร้อมไฟล์แยก ส่วน .glb รวมทุกอย่างไว้ในไฟล์เดียว ส่งงานใช้ GLB แก้ไขใช้ glTF แปลงได้แบบไม่สูญเสีย
- สเปก Khronos glTF 2.0
- ขนาดไฟล์ที่วัดจริง
- การแปลงแบบไม่สูญเสีย
GLB vs glTF: คำตอบสั้น ๆ
glTF คือรูปแบบเปิดของ Khronos Group สำหรับส่งฉาก 3D ไปยังแอปและเว็บ และ GLB ไม่ใช่รูปแบบอื่น แต่เป็นคอนเทนเนอร์ไบนารีของมัน สเปกกำหนดทั้งสองแบบ: ไฟล์ .gltf เป็น JSON (media type model/gltf+json) และไฟล์ .glb (model/gltf-binary) ห่อ JSON เดียวกันพร้อมบัฟเฟอร์ไบนารีหนึ่งก้อนไว้ในไฟล์เดียว
ดังนั้นคำถาม GLB vs glTF จึงเป็นเรื่องการแพ็ก ไม่ใช่คุณภาพ เมช วัสดุ PBR เท็กซ์เจอร์ แอนิเมชัน สกิน และมอร์ฟทาร์เก็ตยังอยู่เหมือนกันทั้งสองแบบ สิ่งที่เปลี่ยนคือจำนวนไฟล์ที่ต้องจัดการ การเปิดคำอธิบายฉากในโปรแกรมแก้ข้อความได้หรือไม่ และขนาดที่เพิ่มขึ้นหากฝังไบนารีไว้ใน JSON
สำหรับแทบทุกคน คำตอบคือ GLB: ไฟล์เดียวสำหรับอัปโหลด ส่งอีเมล หรือลากเข้า three.js, Babylon.js, <model-viewer>, Blender, Unity หรือ Unreal เลือก glTF แบบแยกไฟล์เมื่อดีบัก แก้ค่าของวัสดุด้วยมือ หรือแชร์เท็กซ์เจอร์ระหว่างหลายโมเดลบน CDN
ตารางเปรียบเทียบ GLB vs glTF
ทั้งคู่เป็น glTF 2.0 แถวส่วนใหญ่จึงเหมือนกัน แถวที่ต่างคือแถวที่ตัดสินว่าโปรเจกต์คุณควรใช้ GLB หรือ glTF
| GLB (.glb) | glTF (.gltf) | |
|---|---|---|
| ประเภทเรขาคณิต | เมชสามเหลี่ยม (รวมจุดและเส้น) ลำดับชั้นโหนด สกิน มอร์ฟทาร์เก็ต | เหมือนกัน |
| สี / เท็กซ์เจอร์ | เท็กซ์เจอร์ PNG หรือ JPEG ที่เก็บไว้ในไบนารีชังก์; สีเวอร์เท็กซ์ | เท็กซ์เจอร์เป็นไฟล์ภาพแยก หรือเป็น data URI แบบ base64 ใน JSON |
| หน่วย | เมตร มือขวา +Y ขึ้น ตามสเปก | เหมือนกัน |
| วัสดุ | PBR metallic-roughness มีมาให้; เพิ่มเติมผ่านส่วนขยาย KHR | เหมือนกัน |
| ขนาดไฟล์ | รูปแบบไฟล์เดียวที่เล็กที่สุด: เฮดเดอร์ 12 ไบต์ บวก JSON ชังก์และ BIN ชังก์ | ไบต์รวมเท่ากับแบบแยกไฟล์; ใหญ่ขึ้นราว 33% หากฝังไบนารีเป็น base64 |
| ความสามารถในการแก้ไข | ไบนารี; ต้องใช้เครื่องมือตรวจดู | JSON อ่านได้ด้วยมนุษย์และเทียบความต่างในโปรแกรมแก้ข้อความได้ |
| การรองรับซอฟต์แวร์ | three.js, Babylon.js, model-viewer, Blender, Unity, Unreal, Godot, Windows 3D Viewer | ตัวโหลดเดียวกัน; ไฟล์ภายนอกต้องอยู่ในโฟลเดอร์สัมพัทธ์ที่ถูกต้อง |
| การใช้งานด้านการพิมพ์ | ไม่ใช่รูปแบบสำหรับพิมพ์; UltiMaker Cura เปิดได้ แต่สไลเซอร์ส่วนใหญ่เปิดไม่ได้ | เหมือนกัน; แปลงเป็น STL หรือ 3MF เพื่อพิมพ์ |
| จำนวนไฟล์ | 1 | 1 ถึงหลายไฟล์ (.gltf, .bin, รูปภาพ) |
ที่มา: สเปก Khronos glTF 2.0 ส่วนนามสกุลไฟล์ ระบบพิกัดและหน่วย และรูปแบบไฟล์ GLB
GLB ถูกสร้างจาก glTF อย่างไร
GLB เริ่มด้วยเฮดเดอร์ 12 ไบต์: ไบต์มหัศจรรย์ glTF เวอร์ชัน (2) และความยาวรวม จากนั้นเป็นชังก์ ชังก์แรกคือ JSON ชังก์ ซึ่งเป็นคำอธิบายฉากเดียวกับที่ .gltf จะมี ชังก์ที่สองคือ BIN ชังก์ ซึ่งเก็บตำแหน่งเวอร์เท็กซ์ นอร์มัล UV อินเด็กซ์ คีย์เฟรมแอนิเมชัน และโดยปกติคือตัวภาพเท็กซ์เจอร์เอง
ไฟล์ .gltf เก็บ JSON นั้นเป็นไฟล์เดี่ยวและอ้างอิงข้อมูลไบนารีได้สองวิธี: พาธสัมพัทธ์ไปยังไฟล์ .bin และไฟล์ภาพที่วางข้างกัน หรือ data URI ที่เข้ารหัสไบต์เป็น base64 ลงใน JSON โดยตรง สเปกระบุเองว่า base64 เพิ่มความยาวไบต์ของเพย์โหลดขึ้น 33% และการถอดรหัสต้องใช้การประมวลผลเพิ่ม นั่นคือเหตุผลหลักที่ GLB มีอยู่
- GLB: เฮดเดอร์ + JSON ชังก์ + BIN ชังก์ ในไฟล์เดียว
- glTF: JSON พร้อม .bin และรูปภาพวางเคียงกัน
- glTF แบบฝังข้อมูล: ไฟล์เดียว แต่ base64 เพิ่มขนาดราวหนึ่งในสาม
ขนาดไฟล์ GLB vs glTF: โมเดลเดียวแพ็กสามแบบ
เรานำโมเดลที่สร้างด้วย AI และมีเท็กซ์เจอร์จากแกลเลอรีของเรา คืออัศวินหุ่นยนต์สตีมพังค์ 500,000 สามเหลี่ยม 287,963 เวอร์เท็กซ์ และเท็กซ์เจอร์ PNG 2048 x 2048 สามไฟล์ มาวัดแต่ละรูปแบบการแพ็ก
| การแพ็ก | ไฟล์ | ขนาด |
|---|---|---|
| GLB | 1 | 26.9 MB |
| glTF + .bin + เท็กซ์เจอร์ PNG | 5 (.gltf, .bin, PNG 3 ไฟล์) | รวมประมาณ 26.9 MB; ไฟล์ .gltf JSON อย่างเดียวประมาณ 2 KB |
| glTF ที่ฝังข้อมูล base64 | 1 | ประมาณ 35.9 MB |
| ไบต์คืออะไรบ้าง | เรขาคณิต 15.2 MB เท็กซ์เจอร์ 11.7 MB |
การแพ็กไม่ได้ย่ออะไรให้เล็กลง หากต้องการให้โมเดลเล็กลง ให้บีบอัดเรขาคณิต (Draco หรือ meshopt) ลดขนาดหรือเข้ารหัสเท็กซ์เจอร์ใหม่ หรือลดจำนวนสามเหลี่ยม ตัวบีบอัด GLB และตัวลดความซับซ้อนเมชของเราทำได้ในเบราว์เซอร์
glTF vs GLB บนเว็บ ใน AR และใน Blender
บนเว็บ GLB คือค่าเริ่มต้นที่ใช้งานได้จริง: คำขอเดียว แคชหนึ่งรายการ และตัวโหลดหลักทุกตัวอ่านได้ ไฟล์ glTF แยกอาจชนะบนเว็บไซต์ที่แสดงหลายโมเดลซึ่งใช้เท็กซ์เจอร์ร่วมกัน เพราะเบราว์เซอร์ดาวน์โหลดภาพที่ใช้ร่วมกันเพียงครั้งเดียว บันทึกการใช้งานจริงของสเปกเองก็อธิบายการแลกเปลี่ยนนี้
สำหรับ AR Scene Viewer ของ Android รับ glTF และ GLB ขณะที่ Quick Look ของ Apple บน iPhone ต้องใช้ USDZ ดังนั้นควรเผยแพร่ทั้งสองแบบและแปลง GLB เป็น USDZ สำหรับอุปกรณ์ Apple ใน Blender เมนู File > Import > glTF 2.0 อ่านได้ทั้งสอง และเมนู Format ของตัวส่งออกมี glTF Binary (.glb) กับ glTF Separate (.gltf + .bin + textures) เลือก Binary เว้นแต่มีเหตุผลที่จะไม่ทำ
สำหรับการพิมพ์ 3D ทั้งสองแบบไม่ใช่รูปแบบส่งต่อที่เหมาะสม แปลง GLB เป็น STL หรือ 3MF; เท็กซ์เจอร์จะพิมพ์ไม่ออก แต่รูปทรงจะพิมพ์ได้
- เว็บและการแชร์: GLB
- หลายโมเดลใช้เท็กซ์เจอร์ร่วมกัน: glTF แยก
- AR บน iPhone: แปลงเป็น USDZ
- การพิมพ์: แปลงเป็น STL หรือ 3MF
GLB vs glTF: ใช้แบบไหนเมื่อไร
ทั้งคู่เป็น glTF 2.0 ที่ถูกต้อง เลือกตามเวิร์กโฟลว์
แชร์โมเดลให้ใครก็ตาม
ฝังบนเว็บไซต์
ดีบักวัสดุที่เสีย
baseColorFactor, metallicFactor หรือดัชนีเท็กซ์เจอร์ แก้แล้วโหลดใหม่แคตตาล็อกสินค้าที่ใช้เท็กซ์เจอร์ร่วมกัน
การควบคุมเวอร์ชัน
หลีกเลี่ยง: glTF แบบฝังข้อมูล
แปลง glTF และ GLB โดยไม่ทำอะไรพัง
การแปลงไม่สูญเสียข้อมูลทั้งสองทาง ตราบใดที่ไฟล์ที่อ้างอิงทั้งหมดอยู่ครบ
- เก็บ .gltf, .bin และไฟล์ภาพเท็กซ์เจอร์ไว้ในโฟลเดอร์สัมพัทธ์เดิมตอนส่งออก
- โหลดผลลัพธ์ในโปรแกรมดูและตรวจว่าเท็กซ์เจอร์แสดงก่อนแชร์
- จำไว้ว่า glTF ใช้หน่วยเมตร: ฟิกเกอร์ 30 มม. คือ 0.03 หน่วย ซึ่งดูเล็กมากในบางเครื่องมือ
- บีบอัดเรขาคณิตและเท็กซ์เจอร์สำหรับเว็บ; แค่เปลี่ยนการแพ็กไม่ช่วยให้เล็กลง
- ส่งเฉพาะไฟล์ .gltf; หากไม่มี .bin และรูปภาพ โมเดลจะโหลดว่างหรือเป็นสีเทา
- เปลี่ยนชื่อ .gltf เป็น .glb; เฮดเดอร์ไบนารีต้องเขียนโดยตัวแปลง
- ใช้ glTF แบบฝัง base64 กับโมเดลขนาดใหญ่; จะเพิ่มขนาดข้อมูลไบนารีราว 33%
- คาดหวังให้สไลเซอร์พิมพ์เท็กซ์เจอร์จาก GLB; แปลงเป็น 3MF สำหรับงานพิมพ์หลายสี
โปรแกรมดูและแปลง GLB และ glTF ฟรี
เครื่องมือสำหรับทั้งสองฝั่งของ GLB vs glTF ทั้งหมดทำงานในเบราว์เซอร์โดยไม่ต้องลงชื่อเข้าใช้ และไฟล์ของคุณอยู่ในอุปกรณ์ของคุณ
FAQ
คำถามที่พบบ่อย
GLB vs glTF: แบบไหนดีกว่า?
GLB กับ glTF ต่างกันอย่างไรในประโยคเดียว?
การแปลง glTF เป็น GLB ทำให้คุณภาพลดลงหรือไม่?
ทำไม GLB ของฉันถึงใหญ่จัง?
พิมพ์ 3D จากไฟล์ GLB หรือ glTF ได้ไหม?
glTF ใช้หน่วยอะไร?
SupaVoxel ให้ไฟล์รูปแบบไหนกับฉัน
iPhone เปิดไฟล์ GLB ได้ไหม
เครื่องมือและคู่มือที่เกี่ยวข้อง
อ่านต่อ
เริ่มใช้ฟรี
เข้าใจ GLB กับ glTF แล้วใช่ไหม? สร้างโมเดลเลย
เปลี่ยนรูปถ่ายให้เป็นโมเดล 3D ปกติใช้เวลาไม่ถึงหนึ่งนาที ดาวน์โหลด GLB ฟรีด้วย 3 เครดิตแรกและไม่ต้องใช้บัตร โมเดลที่มีเท็กซ์เจอร์มาพร้อมแพ็กเกจแบบจ่ายเงิน
ไม่ต้องใช้บัตรเครดิต · เริ่มต้นฟรี 3 เครดิต