glTF JSON (.gltf)
ISO/IEC มาตรฐานGL Transmission Format (glTF) คือข้อกำหนด JSON แบบมาตรฐานเปิดและไม่มีค่าลิขสิทธิ์ สำหรับการส่งผ่านและการโหลดฉากและโมเดล 3D ที่มีประสิทธิภาพโดย WebGL, WebGPU, เอนจินเกม และแอปพลิเคชันเนทีฟ
แปลง GLTF เป็น GLB
ตัวแปลงจาก GLTF เป็น GLB ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบและดู Metadata
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ glTF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ glTF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
7B 0A 20 20 22 61 73 73 65 74 22การแสดงผลรูปแบบ ASCII: {\n "asset"
มาตรฐาน: ISO/IEC 12113:2022 / Khronos Open Standard
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | Human-readable JSON document describing scene graph, nodes, meshes, accessors, materials, and animations, referencing external buffers |
| การบีบอัด | External textures (PNG, JPEG, WebP) and optional Draco geometry compression |
| การจัดลำดับไบต์ (Byte Endianness) | UTF-8 JSON text (referencing Little-Endian .bin buffers) |
| พื้นที่สี | sRGB base color, Linear roughness/metallic |
| ช่องสัญญาณและโครงสร้าง | Scene hierarchy, nodes, cameras, PBR materials, skinning skeletons, and morph targets |
| ขนาดสูงสุด | Unbounded coordinate space and triangle count |
| ความโปร่งใส | Alpha mode BLEND, MASK with cutoff threshold, or volumetric transmission |
| การสตรีมและแบบโปรเกรสซีฟ | Asynchronous loading: scene JSON loads instantly while heavy binary buffers stream in background |
ตารางเปรียบเทียบทางเทคนิค: glTF กับคู่แข่ง
| คุณลักษณะทางเทคนิค | glTF (ปัจจุบัน) | GLB | OBJ | FBX |
|---|---|---|---|---|
| สถาปัตยกรรมไฟล์ | ข้อความฉาก JSON + ไฟล์ .bin / พื้นผิวที่เกี่ยวข้อง | ไฟล์ไบนารีเดี่ยวในตัว | จุดยอดและหน้าโพลิกอนแบบข้อความเพียว + .mtl | คอนเทนเนอร์ไบนารี/ASCII แบบกรรมสิทธิ์ |
| มาตรฐานวัสดุ PBR | มาตรฐาน Metallic-Roughness PBR | มาตรฐาน Metallic-Roughness PBR | วัสดุ Phong/Lambert แบบเดิม | วัสดุแบบกรรมสิทธิ์เฉพาะ |
| การรองรับแอนิเมชัน | การทำสกินนิ่งโครงกระดูกและมอร์ฟทาร์เก็ต (morph targets) | การทำสกินนิ่งโครงกระดูกและมอร์ฟทาร์เก็ต | ไม่มี (เรขาคณิตคงที่เท่านั้น) | แอนิเมชันและกระดูกที่ซับซ้อน |
| ประสิทธิภาพขณะรันไทม์ | ปรับแต่งสำหรับ WebGL และเอนจินแบบเรียลไทม์ | ปรับแต่งสำหรับ WebGL และเอนจินแบบเรียลไทม์ | ต้องใช้เวลาแยกวิเคราะห์และสร้างใหม่ที่ช้า | ต้องมีการแยกวิเคราะห์ผ่าน SDK เดสก์ท็อปที่ซับซ้อน |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ข้อผิดพลาดของเอนจิน 3D: 'Failed to load buffer: URI not found'
สาเหตุหลัก: ไฟล์ไบนารี .bin หรือภาพพื้นผิวที่เกี่ยวข้องไม่ได้ถูกอัปโหลดควบคู่ไปกับไฟล์ .gltf
การกู้คืน: รวมไฟล์ที่เกี่ยวข้องทั้งหมดเข้าด้วยกันหรือแปลงเป็นไฟล์ GLB เดี่ยวโดยตรงด้วย File2File
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ไฟล์ glTF JSON อ้างอิง URI ภายนอก (ข้อมูล URI หรือ URL ระยะไกล) ซึ่งอาจทริกเกอร์ช่องโหว่ Server-Side Request Forgery (SSRF) หรือ Path Traversal
เวกเตอร์การโจมตีที่ทราบ
- Path Traversal ผ่าน URI บัฟเฟอร์แบบสัมพัทธ์ (เช่น 'uri: ../../../etc/passwd')
- SSRF ผ่านการดึงบัฟเฟอร์เครือข่ายระยะไกลในตัวสร้างภาพย่อ 3D ฝั่งเซิร์ฟเวอร์
- การปฏิเสธการให้บริการ (Denial of service) ผ่านวัฏจักรลำดับชั้นโหนดเรียกซ้ำที่ผิดรูป
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- โครงสร้าง JSON ที่มนุษย์อ่านได้ช่วยให้สามารถแก้ไขด้วยโปรแกรม, เขียนสคริปต์ไปป์ไลน์ และตรวจสอบด้วยภาพได้
- การออกแบบแบบโมดูลาร์: แยกเมทาดาตากลุ่มฉากที่มีน้ำหนักเบาออกจากเรขาคณิตไบนารีขนาดใหญ่ (.bin) และพื้นผิว
- การกำหนดวัสดุแบบ Physically Based Rendering (PBR) ช่วยให้มั่นใจได้ว่าโมเดล 3D จะดูเหมือนกันทุกประการในทุกเอนจินการเรนเดอร์
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- ความซับซ้อนของหลายไฟล์: การแชร์โมเดลจำเป็นต้องบีบอัดเป็น ZIP หรือรวมไฟล์ .gltf, .bin และภาพพื้นผิวเข้าด้วยกัน
- การเริ่มต้นเชื่อมต่อเครือข่ายครั้งแรกช้ากว่าไฟล์ GLB แบบไฟล์เดียวเล็กน้อย เนื่องจากการร้องขอ HTTP หลายครั้ง
- การอ้างอิงเส้นทางสัมพัทธ์อาจเสียหายได้หากไฟล์พื้นผิวที่เกี่ยวข้องถูกเปลี่ยนชื่อหรือย้ายตำแหน่ง
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- glTF มีชื่อเล่นอย่างเป็นทางการว่า 'The JPEG of 3D' เนื่องจากเน้นที่การส่งและการแสดงผลขณะรันไทม์เป็นหลัก มากกว่าการสร้างสรรค์ชิ้นงาน
- รูปแบบนี้ร่วมก่อตั้งโดย Tony Parisi ผู้ร่วมสร้าง VRML (Virtual Reality Modeling Language) ในปี 1994
- NASA จัดเตรียมโมเดล 3D ของยานสำรวจ ดาวเทียม และนักบินอวกาศเพื่อให้สาธารณชนดาวน์โหลดในรูปแบบ glTF
คำถามทางเทคนิคที่พบบ่อย
เหตุใดไฟล์ glTF ของฉันจึงไม่มีสีหรือรูปทรง
ไฟล์ .gltf มีเพียงคำสั่งฉากที่เป็น JSON เท่านั้น โดยต้องอาศัยไฟล์ .bin ที่ใช้ร่วมกันสำหรับรูปทรง 3 มิติ และไฟล์ .png/.jpg สำหรับสี โปรดตรวจสอบให้แน่ใจว่าไฟล์ที่เกี่ยวข้องทั้งหมดอยู่ในโฟลเดอร์เดียวกัน
ฉันจะแปลงไฟล์ glTF เป็นไฟล์ GLB ไฟล์เดียวได้อย่างไร
อัปโหลดไฟล์ .gltf ของคุณพร้อมกับไฟล์ .bin และไฟล์พื้นผิวที่เกี่ยวข้องไปยัง File2File.app เพื่อรวมเข้าเป็นไฟล์ .glb ในไฟล์เดียวที่มีข้อมูลครบถ้วนในตัวทันที
โปรแกรมใดบ้างที่รองรับ glTF
Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot และ Windows 3D Viewer รองรับ glTF ทันทีโดยไม่ต้องติดตั้งอะไรเพิ่ม
คู่การแปลงไฟล์ glTF ที่เกี่ยวข้อง
การแปลงไฟล์ glTF JSON เป็นคอนเทนเนอร์ glTF Binary จะรวมไฟล์ข้อความแยก บัฟเฟอร์ไบนารี และพื้นผิวเข้าไว้ในไฟล์เดียวเพื่อให้การส่ง2 ผ่านเว็บทำได้รวดเร็วยิ่งขึ้น
การแปลงไฟล์ GLB เป็น GLTF จะแยกคอนเทนเนอร์ไบนารีเดี่ยวออกเป็นไฟล์ข้อความและไฟล์แอสเซทแยกกัน เพื่อให้นักพัฒนาสามารถแก้ไขโค้ดเนื้อผิวและเรขาคณิตสามมิติได้อย่างง่ายดาย
การแปลงไฟล์เรขาคณิต Wavefront OBJ เป็นไฟล์ Manifest แบบ glTF JSON จะช่วยยกระดับโมเดลสามมิติแบบคงที่ให้กลายเป็นแอสเซทที่พร้อมใช้งานบนเว็บ ซึ่งสามารถโหลดได้ทันทีภายในเว็บเบราว์เซอร์มาตรฐาน