ไฟล์ GLB คืออะไร
ไฟล์ GLB คือ glTF 2.0 ในรูปแบบไบนารี เป็นไฟล์เดียวที่รวมเมช วัสดุ เท็กซ์เจอร์ และแอนิเมชันของโมเดล 3D ไว้ด้วยกัน Khronos Group เผยแพร่ glTF 2.0 ในปี 2017 และในปี 2022 ก็ได้กลายเป็นมาตรฐานสากล ISO/IEC 12113 ไฟล์ .glb จาก Blender จากเครื่องมือสร้างโมเดลด้วย AI หรือจากแอปสแกน 3D จึงเปิดได้ในโปรแกรมดู GLB นี้ บนหน้าเว็บ และในเอนจินเกมส่วนใหญ่
โปรแกรมดู .glb มีหน้าที่แค่อ่านไฟล์แล้ววาดออกมา ส่วนการแก้ไข การเปลี่ยนเท็กซ์เจอร์ และการส่งออกเป็นรูปแบบอื่น เป็นงานของโปรแกรมแก้ไข 3D
GLB กับ glTF: ไฟล์เดียวหรือทั้งโฟลเดอร์
โมเดลเดียวกันบันทึกได้สองแบบ ไฟล์ .gltf เป็น JSON ที่คนอ่านได้ ซึ่งชี้ไปยังไฟล์แยกต่างหาก ได้แก่ ไฟล์ .bin ที่เก็บเรขาคณิต และไฟล์ภาพหนึ่งไฟล์ต่อเท็กซ์เจอร์หนึ่งชิ้น ส่วน .glb รวม JSON ข้อมูลไบนารี และภาพทั้งหมดไว้ในไฟล์เดียว จึงส่งทางอีเมล อัปโหลด และเก็บไว้ด้วยกันได้ง่ายกว่า
ภายใน GLB: ส่วนหัว ส่วน JSON และส่วนไบนารี
ส่วนหัว 12 ไบต์
GLB ทุกไฟล์เริ่มด้วยตัวอักษร glTF หมายเลขเวอร์ชัน และความยาวทั้งหมดของไฟล์ โปรแกรมดูจะตรวจไบต์เหล่านี้ก่อน จึงบอกคุณได้เมื่อ “GLB” นั้นแท้จริงเป็นไฟล์ FBX หรือ glTF 1.0
ส่วน JSON
ถัดมาเป็นบล็อก JSON ที่อธิบายฉาก ได้แก่ เมช วัสดุ เท็กซ์เจอร์ แอนิเมชัน และจำนวนเวอร์เท็กซ์ของแต่ละส่วน รายงานโมเดลอ่านจากส่วนนี้ ตัวเลขต่าง ๆ จึงปรากฏก่อนที่จะวาดอะไรขึ้นมาเลย
ส่วนไบนารี
สุดท้ายคือข้อมูลไบนารี ได้แก่ ตำแหน่งเวอร์เท็กซ์ นอร์มอล คีย์เฟรมของแอนิเมชัน และโดยปกติก็รวมภาพเท็กซ์เจอร์ไว้ด้วย ซึ่งเก็บเป็น PNG, JPEG, WebP หรือ KTX2
วิธีดูไฟล์ GLB ใน 3 ขั้นตอน
เปิดไฟล์ GLB ของคุณ
คลิก “เปิดไฟล์ 3D” หรือลากไฟล์ .glb มาวางบนโปรแกรมดู GLB สำหรับ .gltf ให้เลือกพร้อมไฟล์ .bin และไฟล์เท็กซ์เจอร์ หรือลากทั้งโฟลเดอร์มาวาง ยังไม่มีโมเดล? ลองตัวอย่างหนึ่งในสามตัว ไฟล์ขนาดไม่เกิน 200 MB เปิดได้บนคอมพิวเตอร์ และไม่เกิน 50 MB บนโทรศัพท์ ซึ่งหน่วยความจำหมดเร็วกว่า
หมุน ซูม และเลื่อนมุมมอง
ลากเพื่อหมุนรอบโมเดล เลื่อนล้อเมาส์หรือจีบนิ้วเพื่อซูม และลากด้วยปุ่มขวาหรือลากด้วยสองนิ้วเพื่อเลื่อนมุมมอง “รีเซ็ตมุมมอง” นำกล้องกลับที่เดิม “หมุนอัตโนมัติ” หมุนโมเดลช้า ๆ และ “โครงลวด” แสดงเมชที่อยู่ข้างใต้
ดูรายงานและส่งออก
แผงข้างโปรแกรมดูแสดงขนาด จำนวนสามเหลี่ยม เท็กซ์เจอร์ และแอนิเมชันของโมเดล ปุ่มกล้องใช้บันทึกภาพหน้าจอ PNG และแท็บ “เท็กซ์เจอร์” ใช้บันทึกภาพแต่ละไฟล์ในรูปแบบเดิม
เปิดไฟล์ .glb หรือ .gltf พร้อมไฟล์ประกอบ
หมุน ซูม และเลื่อนมุมมองเพื่อตรวจดู
ดูรายงานและส่งออกภาพ
โปรแกรมดู GLB นี้แสดงอะไรให้คุณเห็นบ้าง
การเปิดโมเดลได้เป็นแค่ครึ่งหนึ่งของงาน อีกครึ่งคือการรู้ว่าโมเดลพร้อมสำหรับปลายทางหรือยัง ไม่ว่าจะเป็นหน้าเว็บ โทรศัพท์ แอป AR หรือเกม โปรแกรมดู GLB นี้อ่านตัวเลขที่ตอบคำถามนั้นได้
เวอร์เท็กซ์ สามเหลี่ยม และเมช
จำนวนสามเหลี่ยมเป็นตัวชี้วัดที่ชัดเจนที่สุดว่าโมเดลหนักแค่ไหนในการวาด โมเดลสินค้าสำหรับหน้าเว็บมักอยู่ที่หลักหมื่น ส่วนรูปปั้นที่สแกนมาอาจมีถึงหลักล้านและกระตุกบนโทรศัพท์ เวอร์เท็กซ์ที่หลายส่วนใช้ร่วมกันจะนับเพียงครั้งเดียว ตัวเลขจึงตรงกับสิ่งที่เก็บไว้ในไฟล์
เท็กซ์เจอร์: ส่วนที่กินขนาดไฟล์มากที่สุด
คนส่วนใหญ่คิดว่าเรขาคณิตที่ซับซ้อนทำให้ GLB ใหญ่ แต่น้อยครั้งที่เป็นเช่นนั้น แท็บ “ข้อมูล” มีแถบที่แบ่งไฟล์ออกเป็นเท็กซ์เจอร์ เรขาคณิต แอนิเมชัน และส่วนที่เหลือ และในโมเดลแบบไม่เคลื่อนไหวส่วนใหญ่ เท็กซ์เจอร์คือส่วนที่ใหญ่ที่สุด โมเดลตัวอย่าง Avocado (อะโวคาโด) มีสามเหลี่ยมเพียง 682 รูป แต่หนักถึง 7.73 MB เกือบทั้งหมดเป็นภาพขนาด 2048 × 2048 สามภาพ
เราวัดไฟล์ GLB 13 ไฟล์จาก Khronos glTF Sample Assets ด้วยตัวแยกวิเคราะห์ (parser) ของโปรแกรมดูนี้เอง โดยค่ามัธยฐาน เท็กซ์เจอร์คิดเป็น 95% ของไฟล์ มีเพียงตัวละครที่มีแอนิเมชันและรถของเล่นที่มีสามเหลี่ยม 109,000 รูปเท่านั้นที่ส่วนใหญ่เป็นเรขาคณิต ตารางด้านล่างมีตัวเลขทั้งหมด
แอนิเมชันและมอร์ฟทาร์เก็ต
ไฟล์ที่มีแอนิเมชันจะแสดงทุกคลิปพร้อมความยาว เลือกคลิป หยุดชั่วคราว เลื่อนไทม์ไลน์ หรือชะลอให้เหลือหนึ่งในสี่ของความเร็วปกติ เพื่อตรวจท่าเดินทีละเฟรม สกินและมอร์ฟทาร์เก็ตที่ใช้กับตัวละครและการแสดงสีหน้าก็ถูกนับไว้ในรายงานเช่นกัน
ส่วนขยายการบีบอัดที่ถอดรหัสได้
GLB จำนวนมากถูกบีบอัด และโปรแกรมดูที่ถอดรหัสไม่ได้จะไม่แสดงอะไรเลย โปรแกรมนี้รองรับส่วนขยายที่ใช้กันทั่วไป:
- Draco (
KHR_draco_mesh_compression) ลดขนาดเรขาคณิตได้มาก แต่ต้องมีตัวถอดรหัสก่อนจึงจะวาดโมเดลได้ - meshopt (
EXT_meshopt_compression) บีบอัดเรขาคณิตและแอนิเมชัน และถอดรหัสได้เร็วมาก - KTX2 (
KHR_texture_basisu) เก็บเท็กซ์เจอร์ในรูปแบบที่ GPU ใช้ได้ทันที ซึ่งใช้หน่วยความจำวิดีโอน้อยลง - WebP (
EXT_texture_webp) ทำให้ไฟล์เท็กซ์เจอร์เล็กลง และเบราว์เซอร์ถอดรหัสได้เองโดยตรง
ตัวถอดรหัสแต่ละตัวจะดาวน์โหลดเฉพาะเมื่อไฟล์ประกาศใช้ส่วนขยายนั้น GLB แบบธรรมดาจึงไม่ต้องเสียเวลาโหลดตัวถอดรหัสเลย
ผลการวัด: อะไรอยู่ในไฟล์ GLB บ้าง
| โมเดล | ขนาดไฟล์ | เท็กซ์เจอร์ | เรขาคณิต | แอนิเมชัน | สามเหลี่ยม |
|---|---|---|---|---|---|
| Avocado | 7.73 MB | 99.7% | 0.3% | — | 682 |
| BarramundiFish | 11.91 MB | 99.0% | 1.0% | — | 3,864 |
| WaterBottle | 8.55 MB | 98.3% | 1.7% | — | 4,510 |
| BoomBox | 10.12 MB | 98.0% | 2.0% | — | 6,036 |
| Lantern | 9.12 MB | 97.5% | 2.4% | — | 5,394 |
| AntiqueCamera | 16.73 MB | 95.4% | 4.6% | — | 20,066 |
| Corset | 12.87 MB | 95.1% | 4.9% | — | 18,324 |
| DamagedHelmet | 3.60 MB | 85.1% | 14.8% | — | 15,452 |
| SheenChair | 3.93 MB | 72.2% | 27.6% | — | 39,936 |
| CesiumMan | 0.42 MB | 35.8% | 48.2% | 9.4% | 4,672 |
| ToyCar | 5.17 MB | 32.3% | 67.6% | — | 108,936 |
| Fox | 0.16 MB | 16.4% | 46.7% | 26.9% | 576 |
| BrainStem | 3.05 MB | 0% | 62.9% | 34.3% | 61,666 |
ดูไฟล์ glTF ที่แยกเท็กซ์เจอร์ไว้ภายนอก
ไฟล์ .gltf เพียงไฟล์เดียวเป็นแค่คำอธิบายในรูปแบบ JSON เรขาคณิตอยู่ในไฟล์ .bin ที่วางอยู่ข้างกัน และเท็กซ์เจอร์อยู่ในไฟล์ภาพ ซึ่งมักอยู่ในโฟลเดอร์ textures ให้โปรแกรมดู glTF นี้ได้รับทุกไฟล์พร้อมกัน โดยเลือกทั้งหมดในหน้าต่างเลือกไฟล์ หรือลากทั้งโฟลเดอร์มาวางบนโปรแกรมดู
โปรแกรมดูจะจับคู่แต่ละไฟล์กับพาธที่เขียนไว้ใน .gltf โครงสร้างโฟลเดอร์จึงถูกต้องตามเดิม หากไม่มีไฟล์ .bin โปรแกรมจะบอกชื่อไฟล์ที่ต้องการอย่างชัดเจน แทนที่จะล้มเหลวไปเงียบ ๆ หากขาดเท็กซ์เจอร์ โมเดลยังเปิดได้และจะแสดงรายการไฟล์ที่ขาด คุณจึงรู้ว่าต้องหาไฟล์ไหน
ทำไมไฟล์ GLB เปิดไม่ได้ (และวิธีแก้)
เมื่อโมเดลโหลดไม่ขึ้น สาเหตุแทบทั้งหมดมาจากหนึ่งในห้าข้อนี้ และโปรแกรมดู GLB นี้จะบอกสาเหตุให้ แทนที่จะแสดงหน้าจอว่างเปล่า
ไม่ใช่ GLB จริง
บางครั้งไฟล์ FBX, OBJ และ STL ถูกเปลี่ยนนามสกุลเป็น .glb ด้วยหวังว่าจะช่วยได้ ซึ่งไม่ได้ผล เพราะข้อมูลข้างในยังเป็นรูปแบบอื่นอยู่ โปรแกรมดูจะอ่านไบต์แรก ๆ แล้วบอกว่าไฟล์นั้นเป็นอะไรจริง ๆ คุณจึงส่งออกใหม่เป็น GLB จาก Blender หรือโปรแกรมที่สร้างไฟล์นั้นได้
โมเดลเป็นสีดำ สีเทา หรือไม่มีเท็กซ์เจอร์
ไฟล์ .gltf ที่ไฟล์ภาพตกหล่นไปจะแสดงพื้นผิวสีเทาหรือสีขาวเรียบ ๆ ส่วนโมเดลที่ดูเป็นสีดำมักต้องการแสง: เปิด “แสงสตูดิโอ” ในแท็บ “ฉาก” หรือเพิ่มค่าแสง
เล็กจิ๋ว ใหญ่มาก หรือนอนตะแคง
glTF ใช้หน่วยเมตรและให้แกน +Y ชี้ขึ้น โมเดลที่ส่งออกเป็นมิลลิเมตรจึงใหญ่เกินจริง 1,000 เท่า และโมเดลที่สร้างโดยใช้แกนตั้งต่างออกไปจะนอนตะแคง โปรแกรมดูจัดเฟรมให้ทุกโมเดลโดยอัตโนมัติจึงมองเห็นได้เสมอ แต่ควรแก้สเกลหรือแกนตอนส่งออก
เป็นไฟล์ glTF 1.0
ไฟล์ที่ส่งออกก่อนปี 2017 อาจเป็น glTF 1.0 ซึ่งเครื่องมือปัจจุบันไม่อ่านแล้ว gltf-pipeline เครื่องมือโอเพนซอร์สของ Cesium อัปเกรดไฟล์เหล่านี้ส่วนใหญ่เป็น glTF 2.0 ได้
หน้าเว็บช้าลงหรือแครชบนโทรศัพท์
โทรศัพท์ใช้หน่วยความจำจำนวนไม่มากร่วมกันระหว่างเบราว์เซอร์กับชิปกราฟิก ไฟล์สแกนขนาด 120 MB ที่มีเท็กซ์เจอร์ 8K อาจใช้หน่วยความจำจนหมด ขีดจำกัดบนโทรศัพท์จึงอยู่ที่ 50 MB เปิดไฟล์ขนาดใหญ่บนคอมพิวเตอร์ หรือลดขนาดเท็กซ์เจอร์ก่อน
ทำไมโมเดลดูไม่เหมือนใน Blender
โปรแกรมดู GLB วาดภาพแบบเรียลไทม์ หลายเฟรมต่อวินาที โดยใช้การเรนเดอร์แบบอิงหลักฟิสิกส์ (PBR) และสภาพแวดล้อมแบบสตูดิโอสำหรับแสงสะท้อน ส่วนตัวเรนเดอร์ Cycles ของ Blender ไล่ตามรังสีแสงนานหลายวินาทีหรือหลายนาทีต่อภาพ ได้เงาที่นุ่มนวลและแสงที่สะท้อนไปมาระหว่างพื้นผิว วัสดุเหมือนกัน แต่แสงไม่เหมือนกัน
สีก็อาจเพี้ยนได้เช่นกัน โปรแกรมดูนี้ใช้โทนแมปปิง Khronos PBR Neutral ซึ่งออกแบบมาให้สีของสินค้าแม่นยำ ขณะที่เครื่องมืออื่นอาจใส่โทนแบบภาพยนตร์ (filmic) หากโมเดลดูมืดหรือสว่างเกินไป ให้ปรับค่าแสงในแท็บ “ฉาก” แทนการแก้วัสดุ
บันทึกภาพหน้าจอโมเดล 3D เป็น PNG
ปุ่มกล้องจะบันทึกสิ่งที่คุณเห็นเป็นภาพ PNG ตามจริงทุกประการ เลือกขนาด 1×, 2× หรือ 4× ของโปรแกรมดู เพื่อภาพที่คมชัดบนหน้าจอความละเอียดสูง และติ๊ก “พื้นหลังโปร่งใส” เพื่อเอาฉากหลังสตูดิโอออก เงาบนพื้นแบบนุ่มนวลยังคงอยู่ โมเดลจึงดูเป็นธรรมชาติบนหน้าเพจทุกสี
โปรแกรมดู GLB นี้จึงเป็นวิธีที่รวดเร็วในการแปลง GLB เป็น PNG สำหรับหน้ารายการสินค้า เอกสาร ภาพย่อ หรือพอร์ตโฟลิโอ หากต้องการให้ภาพเบาลงในภายหลัง บีบอัด PNG หรือ แปลงเป็น WebP และ ปรับขนาดให้ตรงตามที่เว็บไซต์กำหนด
เปิดไฟล์ GLB ในโปรแกรมดู GLB ออนไลน์ปลอดภัยไหม?
สำหรับโปรแกรมนี้ ปลอดภัย ไฟล์ถูกอ่านและเรนเดอร์ภายในแท็บเบราว์เซอร์ของคุณ ไม่มีการอัปโหลดและไม่มีการเก็บข้อมูลใด ๆ เกี่ยวกับไฟล์ แม้แต่ไฟล์ .gltf ที่ชี้ไปยังที่อยู่เท็กซ์เจอร์บนเว็บไซต์อื่นก็ไม่ได้รับอนุญาตให้ดึงไฟล์เหล่านั้น การเปิดโมเดลจึงไม่ส่งคำขอใด ๆ ออกไปแทนตัวโมเดล
สิ่งที่ดาวน์โหลดเพิ่มมีเพียงส่วนประกอบของโปรแกรมดูเอง ได้แก่ เอนจิน 3D และตัวถอดรหัส Draco หรือ KTX2 เมื่อไฟล์ที่บีบอัดต้องใช้ ส่วนประกอบเหล่านี้เป็นโค้ดโปรแกรมที่เหมือนกันสำหรับทุกคน และไม่มีข้อมูลใดของคุณอยู่ในนั้น คุณตรวจสอบได้เองในเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์ ที่แท็บ Network (เครือข่าย) ขณะเปิดโมเดล
เปรียบเทียบตัวเลือกโปรแกรมดู GLB
| โปรแกรมดู GLB นี้ | Blender | เอนจินเกม | แอปบนโทรศัพท์ | |
|---|---|---|---|---|
| ต้องติดตั้ง | ไม่ต้อง | ต้อง (ฟรี) | ต้อง (ขนาดใหญ่) | ต้อง |
| เปิด GLB และ glTF | ได้ | ได้ | ได้ ผ่านตัวนำเข้า | แล้วแต่แอป |
| แยกขนาดตามเท็กซ์เจอร์และเรขาคณิต | ได้ | ไม่ได้ | ไม่ได้ | น้อยมาก |
| แก้ไข เปลี่ยนเท็กซ์เจอร์ ส่งออก | ไม่ได้ | ได้ | ได้ | ไม่ได้ |
| ไฟล์อยู่บนอุปกรณ์ของคุณ | ใช่ | ใช่ | ใช่ | แล้วแต่แอป |
| ใช้บนโทรศัพท์ได้ | ได้ สูงสุด 50 MB | ไม่ได้ | ไม่ได้ | ได้ |