glTF JSON (.gltf)

ISO/IEC תקן

פורמט העברת הנתונים התלת-ממדי (glTF) הוא מפרט JSON פתוח בתקן חופשי מתמלוגים, המיועד להעברה ולטעינה יעילות של סצנות ומודל תלת-ממד עבור WebGL, WebGPU, מנועי משחקים ויישומים מקומיים.

המר GLTF ל-GLB

ממיר חינמי מ-GLTF ל-GLB פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.

בדיקה ומטא-נתונים

מערכות הפעלה ומנתחי קבצים מזהים קבצי glTF על ידי בדיקת רצף הבייטים הבינארי הראשוני:

בחר או גרור קבצים לכאן

פרטי - הקבצים לעולם אינם עוזבים את המכשיר שלך

או הדבק Ctrl+V
הבטחת פרטיות ללא העברת נתונים ברשת: 0 בייט הועלו לשרתים חיצוניים. כל העיבוד התבצע באופן מקומי בארגז החול של הדפדפן שלך.

חתימת כותרת ברמת הבייט (Magic Bytes)

מערכות הפעלה ומנתחי קבצים מזהים קבצי glTF על ידי בדיקת רצף הבייטים הבינארי הראשוני:

חתימת HEX (היסט 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
סדר בתים (Endianness)טקסט JSON בקידוד UTF-8 (מפנה למאגרים ‎.bin בסדר Little-Endian)
מרחבי צבעצבע בסיס sRGB, ערכי roughness/metallic ליניאריים
ערוצים ומבנההיררכיית סצנה, צמתים, מצלמות, חומרי PBR, שלדים ל-skinning ויעדי morph
ממדים מרבייםמרחב קואורדינטות ומספר משולשים ללא מגבלה קבועה
שקיפותמצב אלפא BLEND, מצב MASK עם סף חיתוך, או העברה נפחית
הזרמה ופרוגרסיביותglTF מפריד בין תיאורי הסצנה לבין נתוני הגיאומטריה והמרקמים הבינאריים, כך שמציג יכול לטעון רכיבים לפי הצורך במקום להמתין לקובץ יחיד ומונוליתי.

מטריצת השוואה טכנית: glTF מול מתחרים

תכונה טכניתglTF (נוכחי)GLBOBJFBX
ארכיטקטורת קבציםטקסט סצנה מסוג JSON + קובץ .bin נלווה / מרקמיםקובץ בינארי עצמאי יחידקודקודי טקסט פשוטים ופאות + .mtlמכל בינארי/ASCII קנייני
תקני חומרי PBRחומרי PBR מסוג Metallic-Roughness תקנייםחומרי PBR מסוג Metallic-Roughness תקנייםחומרי Phong/Lambert ישניםחומרים קנייניים מותאמים אישית
תמיכה באנימציהיצירת שלדים (Skinning) ויעדי מורפ (Morph targets)יצירת שלדים (Skinning) ויעדי מורפ (Morph targets)ללא (גיאומטריה סטטית בלבד)אנימציה מורכבת ועצמות
ביצועי זמן אמתממוטב עבור WebGL ומנועי רינדור בזמן אמתממוטב עבור WebGL ומנועים בזמן אמתדורש ניתוח ובנייה מחדש איטייםדורש ניתוח מורכב של ערכת פיתוח שולחנית (SDK)

מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)

שגיאת מנוע תלת-ממד: 'Failed to load buffer: URI not found'.

גורם שורש: קובץ הבינארי .bin הנלווה או תמונות המרקם לא הועלו יחד עם קובץ ה-.gltf.

שחזור: ארזו את כל הקבצים הנלווים יחד או המירו ישירות לקובץ GLB יחיד באמצעות File2File.app.

ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)

קובצי JSON של glTF מפנים לכתובות URI חיצוניות (כתובות URI של נתונים או כתובות אתר מרוחקות) העלולות לעורר זיוף בקשות בצד השרת (SSRF) או זליגת נתיבים (Path Traversal).

ווקטורי תקיפה ידועים

  • זליגת נתיבים באמצעות כתובות URI יחסיות של באפר (למשל: 'uri: ../../../etc/passwd').
  • התקפת SSRF באמצעות שליפת באפרי רשת מרוחקים במחוללי תמונות ממוזערות תלת-ממדיות בצד השרת.
  • מניעת שירות (DoS) באמצעות מחזורים רקורסיביים ופגומים בהיררכיית הצמתים.

שיטות מומלצות להגנה: אל תאפשרו כתובות URL מרוחקות ונרמלו את כל נתיבי ה-URI של המאגרים המקומיים לפני הטענה.

היסטוריה ואבני דרך

2022פורמט glTF 2.0 מקבל אישור בינלאומי כתקן ISO/IEC 12113:2022.
2017קבוצת Khronos משחררת את glTF 2.0, וממַסדת את רינדור מבוסס פיזיקה (PBR) כתכונת ליבה.
2015פורמט glTF 1.0 מוכרז בכנס SIGGRAPH, והוגה על ידי פבריס רובינה (Fabrice Robinet), ניל טרווט (Neil Trevett) וטוני פאריסי (Tony Parisi).

יתרונות מרכזיים

  • מבנה JSON קריא לבני אדם המאפשר עריכה פרוגרמטית, כתיבת תסריטים לצינור עיבוד (Pipeline), ובדיקה ויזואלית.
  • עיצוב מודולרי: מפריד בין מטא-דאטה קל משקל של הסצנה לבין גיאומטריה בינארית כבדה (קובצי .bin) ומרקמים.
  • חומרי PBR יכולים לשפר עקביות, אך התוצאה תלויה במנוע הרינדור, בתאורה ובהגדרות.

מגבלות טכניות וחסרונות

  • מורכבות של מספר קבצים: שיתוף מודל מחייב דחיסה ל-ZIP או אריזה משותפת של קובצי ה-.gltf, ה-.bin ומרקמי התמונות יחד.
  • התחלת טעינה ראשונית ברשת איטית במעט בהשוואה לקובץ GLB בודד, עקב הצורך במספר בקשות HTTP.
  • תלויות בנתיבים יחסיים עלולות להיפגע אם קבצי המרקם הנלווים משנים את שמם או מועברים למיקום אחר.

עובדות טכניות מעניינות

  • הכינוי של glTF הוא 'ה-JPEG של תלת-הממד', מכיוון שהוא מתמקד בהעברה ובהצגה בזמן ריצה ולא ביצירת נכסים.
  • קבוצת Khronos הציגה את glTF כדי לפשט את העברת נכסי התלת-ממד עבור יישומי אינטרנט וניידים.
  • נאס"א מספקת מודלים תלת-ממדיים של רכבי מאדים (Rovers), לווינים ואסטרונאוטים להורדה ציבורית בפורמט glTF.

שאלות טכניות נפוצות

למה קובץ ה-glTF שלי חסר צבעים או צורות?

קובץ .gltf מכיל רק את הוראות הסצנה בפורמט JSON. הוא נסמך על קובצי .bin נלווים עבור הצורות התלת-ממדיות ועל קובצי .png/.jpg עבור הצבעים. ודא שכל הקבצים הנלווים נמצאים באותה תיקיה.

איך אני הופך קובץ glTF לקובץ GLB יחיד?

העלה את קובץ ה-.gltf שלך ואת קובצי ה-.bin והמרקם הנלווים אליו ל-File2File.app כדי למזג אותם מיד לקובץ .glb יחיד המכיל הכול.

אילו תוכנות תומכות ב-glTF?

Blender, Three.js, Babylon.js, Unity, Unreal Engine, Godot ו-Windows 3D Viewer תומכים ב-glTF ישר מהקופסה.