glTF JSON (.gltf)

ISO/IEC มาตรฐาน

GL Transmission Format (glTF) คือข้อกำหนด JSON แบบมาตรฐานเปิดและไม่มีค่าลิขสิทธิ์ สำหรับการส่งผ่านและการโหลดฉากและโมเดล 3D ที่มีประสิทธิภาพโดย WebGL, WebGPU, เอนจินเกม และแอปพลิเคชันเนทีฟ

แปลง GLTF เป็น GLB

ตัวแปลงจาก GLTF เป็น GLB ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ

ตรวจสอบและดู Metadata

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ glTF โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
การรับประกันความเป็นส่วนตัวแบบไม่มีการส่งผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวในระดับไบต์ (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 (ปัจจุบัน)GLBOBJFBX
สถาปัตยกรรมไฟล์ข้อความฉาก 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) ผ่านวัฏจักรลำดับชั้นโหนดเรียกซ้ำที่ผิดรูป

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2022glTF 2.0 ได้รับการรับรองในระดับสากลเป็น ISO/IEC 12113:2022
2017Khronos Group เปิดตัว glTF 2.0 โดยกำหนดมาตรฐานการเรนเดอร์อิงตามฟิสิกส์ (PBR) เป็นฟีเจอร์หลัก
2015มีการประกาศเปิดตัว glTF 1.0 ที่งาน SIGGRAPH ซึ่งคิดค้นโดย Fabrice Robinet, Neil Trevett และ Tony Parisi

ข้อได้เปรียบและจุดเด่นสำคัญ

  • โครงสร้าง 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 ที่เกี่ยวข้อง