glTF JSON (.gltf)

ISO/IEC มาตรฐาน

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

แปลง GLTF เป็น GLB

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

ตรวจสอบไฟล์และข้อมูลเมตา

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

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

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

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

ลายเซ็นส่วนหัวระดับไบต์

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ 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

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์เอกสาร JSON ที่อ่านเข้าใจง่าย อธิบายกราฟฉาก, โหนด, เมช, accessors, วัสดุ และแอนิเมชัน พร้อมอ้างอิงบัฟเฟอร์ภายนอก
การบีบอัดเท็กซ์เจอร์ภายนอก (PNG, JPEG, WebP) และการบีบอัดเรขาคณิต Draco ที่เลือกใช้ได้
การจัดลำดับไบต์ข้อความ JSON แบบ UTF-8 (อ้างอิงบัฟเฟอร์ .bin แบบ Little-Endian)
พื้นที่สีสีพื้นฐาน sRGB, ความหยาบ/ความเป็นโลหะแบบเชิงเส้น
ช่องสัญญาณและโครงสร้างลำดับชั้นฉาก, โหนด, กล้อง, วัสดุ PBR, โครงกระดูกสำหรับ skinning และเป้าหมายมอร์ฟ
ขนาดสูงสุดพื้นที่พิกัดและจำนวนสามเหลี่ยมไม่จำกัด
ความโปร่งใสโหมดอัลฟา BLEND, MASK พร้อมค่าเกณฑ์ตัด หรือการส่งผ่านเชิงปริมาตร
การสตรีมและแบบโปรเกรสซีฟglTF แยกคำอธิบายฉากออกจากข้อมูลเรขาคณิตและพื้นผิวแบบไบนารี ทำให้โปรแกรมดูโหลดแต่ละส่วนตามต้องการได้ แทนที่จะต้องรอไฟล์ก้อนเดียว

ตารางเปรียบเทียบทางเทคนิค: 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.app

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

ไฟล์ JSON ของ glTF อ้างอิง URI ภายนอก (data URI หรือ URL ระยะไกล) ซึ่งอาจทำให้เกิดช่องโหว่ Server-Side Request Forgery (SSRF) หรือ Path Traversal

เวกเตอร์การโจมตีที่ทราบ

  • Path Traversal ผ่าน URI บัฟเฟอร์แบบสัมพัทธ์ (เช่น 'uri: ../../../etc/passwd')
  • SSRF ผ่านการดึงบัฟเฟอร์เครือข่ายระยะไกลในตัวสร้างภาพย่อ 3D ฝั่งเซิร์ฟเวอร์
  • การปฏิเสธการให้บริการ (Denial of service) ผ่านวัฏจักรลำดับชั้นโหนดเรียกซ้ำที่ผิดรูป

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ห้ามใช้ URL ระยะไกล และปรับรูปแบบเส้นทาง URI ของบัฟเฟอร์ภายในทั้งหมดให้เป็นมาตรฐานก่อนโหลด

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

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) และพื้นผิว
  • วัสดุ PBR ช่วยให้ภาพสอดคล้องกันขึ้นได้ แต่ผลลัพธ์ขึ้นอยู่กับเรนเดอร์ แสง และการตั้งค่า

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • ความซับซ้อนของหลายไฟล์: การแชร์โมเดลจำเป็นต้องบีบอัดเป็น ZIP หรือรวมไฟล์ .gltf, .bin และภาพพื้นผิวเข้าด้วยกัน
  • การเริ่มต้นเชื่อมต่อเครือข่ายครั้งแรกช้ากว่าไฟล์ GLB แบบไฟล์เดียวเล็กน้อย เนื่องจากการร้องขอ HTTP หลายครั้ง
  • การอ้างอิงเส้นทางสัมพัทธ์อาจเสียหายได้หากไฟล์พื้นผิวที่เกี่ยวข้องถูกเปลี่ยนชื่อหรือย้ายตำแหน่ง

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • glTF มีชื่อเล่นอย่างเป็นทางการว่า 'The JPEG of 3D' เนื่องจากเน้นที่การส่งและการแสดงผลขณะรันไทม์เป็นหลัก มากกว่าการสร้างสรรค์ชิ้นงาน
  • Khronos Group พัฒนา glTF เพื่อให้ส่งต่อแอสเซ็ต 3D สำหรับแอปเว็บและมือถือได้สะดวกขึ้น
  • 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 ทันทีโดยไม่ต้องติดตั้งอะไรเพิ่ม