glTF בינארי (.glb)
ISO/IEC תקןפורמט Binary glTF (בקיצור GLB) הוא מארז בינארי עצמאי וקובץ יחיד של תקן glTF 2.0, המכונה בצדק 'ה-JPEG של תלת-הממד' עבור גרפיקת תלת-ממד מבוססת אינטרנט, מציאות רבודה (AR) ומנועי משחקים בזמן אמת.
המר GLTF ל-GLB
ממיר חינמי מ-GLTF ל-GLB פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-דאטה
מערכות הפעלה ומנתחי קבצים מזהים קבצי GLB על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי GLB על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
67 6C 54 46ייצוג ASCII: glTF
תקינה: ISO/IEC 12113:2022 / Khronos Open Standard
מפרט טכני
| ארכיטקטורת מעטפת | 12-byte binary header ('glTF', version, length) followed by JSON chunk (CHUNK 0) and binary buffer chunk (CHUNK 1) |
| דחיסה | DRACO mesh geometry compression, KHR_texture_basisu (KTX2/Basis Universal GPU textures), and ExtMeshopt |
| סדר בתים (Endianness) | Little-Endian (Intel x86 / WebGL standard) |
| מרחבי צבע | sRGB textures, Linear PBR roughness/metallic channels |
| ערוצים ומבנה | PBR materials (Metallic-Roughness), skinned skeletal meshes, morph targets, animations, cameras, and lights |
| ממדים מרביים | Unbounded vertex and triangle count (supports multi-gigabyte models) |
| שקיפות | Alpha coverage (MASK), alpha blending (BLEND), and volumetric transmission |
| הזרמה ופרוגרסיביות | Single self-contained file with binary offset tables for direct GPU VBO loading |
מטריצת השוואה טכנית: GLB מול מתחרים
| תכונה טכנית | GLB (נוכחי) | GLTF | USDZ | FBX |
|---|---|---|---|---|
| מודל אריזה | קובץ בינארי עצמאי יחיד | JSON + קבצי .bin חיצוניים ומרקמים | ארכיון ZIP של סכמות USD ומרקמים | פורמט בינארי/ASCII קנייני |
| תקן אינטרנט ומציאות רבודה (AR) | תקן אוניברסלי ל-WebGL ומציאות רבודה באנדרואיד | תקן אוניברסלי ל-WebGL (מספר קבצים) | תקן מציאות רבודה עבור iOS Quick Look של אפל | תקן ייבוא למנועי משחקים שולחניים |
| מודל חומרים | חומרי PBR Metallic-Roughness תקניים של glTF | PBR תקני של glTF | סכמת חומרי PBR אוניברסלית של Pixar | צלליות (Shaders) קנייניות מסוג Phong/Lambert/PBR |
| ביצועי קריאה בכרטיס המסך (GPU) | מידי (מיפוי זיכרון ישיר) | מהיר (ריבוי בקשות רשת) | מהיר (פריטי ZIP בלתי דחוסים) | איטי (דורש ניתוח מורכב) |
מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)
מודל תלת-ממד מוצג ללא מרקמים או עם משטחים שחורים אטומים.
גורם שורש: נתוני מרקם מוטמעים פגומים או הפניה חסרה למרקם מסוג PBR metallic-roughness.
התאוששות: בדקו ותקנו את היסט הבייטים (Offsets) באמצעות כלי ההמרה 3D Converter של File2File או בעזרת glTF-Transform.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
מנתחי קוד (Parsers) של GLB מעבדים מקטעי טקסט מסוג JSON בשילוב עם באפרים בינאריים שרירותיים העלולים לגרום לגלישת באפר (Buffer Overflow) אם אורכי הבאפר אינם תואמים.
ווקטורי תקיפה ידועים
- קריאת יתר של באפר (Buffer over-read) כאשר ערכי ה-byteOffset + byteLength של ה-bufferView חורגים מאורך המקטע הבינארי.
- קריאת אינדקס קודקודים מחוץ לגבולות (Out-of-bounds) במהלך ביצוע פקודת drawElements ב-WebGL.
- מניעת שירות (DoS) באמצעות לולאות פריסת דחיסה פתולוגיות של Draco.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- עצמאי לחלוטין: מארז המשלב גיאומטריית תלת-ממד, חומרי PBR, מרקמים (PNG / JPEG / KTX2) ואנימציות שלדים בקובץ אחד.
- טעינה ישירה לכרטיס המסך (GPU): באפרי הגיאומטריה הבינאריים תואמים לפריסות הזיכרון של WebGL / Vulkan ללא צורך בעיבוד מקדים מצד המעבד (CPU).
- התקן המובהק והבלתי מעורער עבור WebGL, WebGPU, תצוגות מקדימות של מוצרי מסחר אלקטרוני בתלת-ממד, ומציאות רבודה ניידת.
מגבלות טכניות וחסרונות
- האופי הבינארי שלה מקשה על בדיקה או עריכה ידנית של טקסט ללא כלי תלת-ממד ייעודיים.
- דורש ספריות פריסה של Draco או Basis Universal בעת שימוש בהרחבות דחיסה מתקדמות.
- פלטפורמות של אפל מעדיפות את USDZ עבור תצוגת מציאות רבודה מקומית ב-iOS Quick Look, מה שמחייב המרת פורמט מ-GLB.
עובדות טכניות מעניינות
- ארבעת הבייטים הראשונים בכל קובץ GLB הם 0x67 0x6C 0x54 0x46, המרכיבים יחד את המילה 'glTF' בקידוד ASCII.
- כאשר אתם צופים בנעל ספורט תלת-ממדית בדפדפן במכשיר נייד, כמעט בוודאות מוחלטת שאתם צופים במודל GLB אינטראקטיבי.
- פורמט GLB תוכנן במיוחד כך שחומרה גרפית תוכל לקרוא באפרי קודקודים ישירות מהדיסק לתוך זיכרון ה-VRAM ללא שום פעולת המרה.
שאלות טכניות נפוצות
מה ההבדל בין glTF ל-GLB?
glTF הוא קובץ JSON המפנה לקובצי גיאומטריה חיצוניים מסוג .bin ולקובצי מרקם תמונה נפרדים. GLB לוקח את כל החבילה הזו וארז אותה בקובץ בינארי יחיד וקומפקטי.
איך אוכל להמיר GLB ל-USDZ עבור מציאות רבודה (AR) של Apple?
ניתן להמיר מודלים של GLB לקובצי USDZ המוכנים ל-Apple בלחיצת כפתור אחת באמצעות File2File.app ישירות בדפדפן האינטרנט שלך.
האם אני יכול לפתוח קובצי GLB ב-Blender?
כן. Blender כוללת מייבא ומייצא מובנים, בעלי ביצועים גבוהים עבור glTF/GLB המוטמעים ישירות בתוכנה.