glTF JSON (.gltf)
ISO/IEC תקןפורמט העברת הנתונים התלת-ממדי (glTF) הוא מפרט JSON פתוח בתקן חופשי מתמלוגים, המיועד להעברה ולטעינה יעילות של סצנות ומודל תלת-ממד עבור WebGL, WebGPU, מנועי משחקים ויישומים מקומיים.
המר GLTF ל-GLB
ממיר חינמי מ-GLTF ל-GLB פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-דאטה
מערכות הפעלה ומנתחי קבצים מזהים קבצי glTF על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (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
מפרט טכני
| ארכיטקטורת מעטפת | 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 |
| סדר בתים (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 | חומרי 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.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
קובצי JSON של glTF מפנים לכתובות URI חיצוניות (כתובות URI של נתונים או כתובות אתר מרוחקות) העלולות לעורר התקפות מזויפות של בקשות בצד השרת (SSRF) או זליגת נתיבים (Path Traversal).
ווקטורי תקיפה ידועים
- זליגת נתיבים באמצעות כתובות URI יחסיות של באפר (למשל: 'uri: ../../../etc/passwd').
- התקפת SSRF באמצעות שליפת באפרי רשת מרוחקים במחוללי תמונות ממוזערות תלת-ממדיות בצד השרת.
- מניעת שירות (DoS) באמצעות מחזוריות היררכיית צמתים רקורסיבית ופגומה.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- מבנה JSON קריא לבני אדם המאפשר עריכה פרוגרמטית, כתיבת תסריטים לצינור עיבוד (Pipeline), ובדיקה ויזואלית.
- עיצוב מודולרי: מפריד בין מטא-דאטה קל משקל של הסצנה לבין גיאומטריה בינאריים כבדה (קובצי .bin) ומרקמים.
- הגדרת חומרים מבוססי-פיזיקה (PBR) מבטיחה שנכסי תלת-ממד ייראו זהה לחלוטין בכל מנועי הרנדור.
מגבלות טכניות וחסרונות
- מורכבות של מספר קבצים: שיתוף מודל מחייב דחיסה ל-ZIP או אריזה משותפת של קובצי ה-.gltf, ה-.bin ומרקמי התמונות יחד.
- התחלת טעינה ראשונית ברשת איטית במעט בהשוואה לקובץ GLB בודד, עקב הצורך במספר בקשות HTTP.
- תלויות בנתיבים יחסיים עלולות להיפגע אם קבצי המרקם הנלווים משנים את שמם או מועברים למיקום אחר.
עובדות טכניות מעניינות
- פורמט glTF מכונה באופן רשמי בשם החיבה 'ה-JPEG של תלת-הממד' מכיוון שהוא מתמקד אך ורק בהעברה ובהצגה בזמן אמת ולא בתהליך היצירה (Authoring).
- הפורמט הוקם במשותף על ידי טוני פאריסי, שהיה ממציאי תקן VRML (שפת דمיית מציאות מדומה) בשנת 1994.
- נאס"א מספקת מודלים תלת-ממדיים של רכבי מאדים (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 ישר מהקופסה.
זוגות המרה קשורים ל-glTF
המרת נכסי glTF JSON למכלי glTF בינארי מאגדת מניפסטים נפרדים של טקסט, באפרים בינאריים ומרקמים לקובץ יחיד עבור אספקה מהירה יותר באינטרנט.
המרת GLB ל-GLTF מפרקת קופסת אחסון בינארית יחידה לקובצי טקסט ונכסים נפרדים, כך שמפתחים יכולים לערוך בקלות טקסטורות וקוד גיאומטריה תלת-ממדית.
המרת קובצי גיאומטריה מסוג Wavefront OBJ למבני glTF JSON מעדכנת מודלים תלת-ממדיים סטטיים לנכסים מוכנים לווב הנטענים באופן מיידי בתוך דפדפני אינטרנט רגילים.