נתקלנו במצב הזה: לקוח מפתח אפליקציית AR ל-Android על ARCore, ומודלי תלת-ממד בפורמט FBX עם חומרי Blinn-Phong לא נטענים. פעם איבדנו יומיים בניפוי באגים של מודל שהוצג כריבוע אפור — התברר שמיפוי ה-UV היה שבור. GLB הוא המכל הבינארי של פורמט glTF 2.0, התקן המוגדר על ידי מפרט Khronos glTF 2.0. ARCore, Sceneform, model-viewer, WebXR — כולם משתמשים ב-glTF/GLB. בניגוד ל-USDZ, GLB עובד חוצה-פלטפורמות: Android AR, WebAR, Three.js, Babylon.js, Unity, Unreal. אבל "תקן פתוח" לא אומר "הכל מומר ללא בעיות". עם ניסיון של 5+ שנים במיוחד בצנרת glTF ובעזרת יותר מ-150 פרויקטי המרה מוצלחים, פיתחנו צנרת שמבטיחה תאימות וביצועים — נשתף אותה. המרה גרועה מובילה לחריגות תקציב על עבודות חוזרות: החיסכון הממוצע באחסון והעברה לאחר דחיסת Draco הוא 70–90%. העלות הטיפוסית שלנו למודל נעה בין $50 ל-$150, וחיסכון בכמויות יכול לעלות על $1,000. צרו קשר לייעוץ על צנרת ההמרה. צנרת אופטימיזציית ה-GLB שלנו ל-ARCore משתמשת בדחיסת Draco ובטקסטורות KTX2 כדי להבטיח ביצועים גבוהים.
מבנה GLB ודרישות ל-AR
glTF 2.0 מתאר סצנה דרך JSON: רשתות, חומרים (זרימת עבודה PBR metallic-roughness), אנימציות, שלדים, מצלמות, אורות. GLB אורז JSON + נתונים בינאריים (גאומטריה, אנימציות) + טקסטורות לקובץ אחד.
דרישות חובה עבור Android ARCore / Sceneform:
- חומרים רק דרך
pbrMetallicRoughness— Blinn-Phong, Phong, Lambert אינם נתמכים - טקסטורות: PNG (עם אלפא) או JPEG (ללא אלפא), מקסימום 2048×2048
- גאומטריה: רק משולשים (מצב פרימיטיבי
TRIANGLES), ללא מרובעים - אין צמתים וחומרים ללא הפניה (המאמת מתלונן)
-
asset.generator— רצוי (עוזר בניפוי באגים של תאימות)
איך להמיר FBX, OBJ ו-USDZ ל-GLB?
- FBX → GLB. Blender הוא הממיר הביניים הטוב ביותר:
blender --background --python fbx_to_glb.py -- input.fbx output.glb סקריפט Python עבור Blender:
import bpy
bpy.ops.import_scene.fbx(filepath=input_path)
bpy.ops.export_scene.gltf(
filepath=output_path,
export_format='GLB',
export_materials='EXPORT',
export_animations=True,
export_apply=True # применяет модификаторы
)הבעיה העיקרית עם FBX → GLB דרך Blender: חומרי FBX משתמשים לעתים קרובות ב-shaders מסוג blender --background --python fbx_to_glb.py -- input.fbx output.glb או import bpy bpy.ops.import_scene.fbx(filepath=input_path) bpy.ops.export_scene.gltf( filepath=output_path, export_format='GLB', export_materials='EXPORT', export_animations=True, export_apply=True # применяет модификаторы ) — Blender ממיר אותם ל-Standard, אבל הפרמטרים (specular, shininess) ממופים בקירוב. התוצאה דורשת בדיקה ויזואלית.
-
OBJ → GLB. OBJ אינו תומך באנימציה, חומרי PBR (רק MTL עם Kd/Ks), שלדים. עבור אובייקטים סטטיים, המירו דרך Blender או
Lambert. קובץ ה-MTL ממופה ל-Principled BSDFשל glTF בקירוב:obj2gltf→pbrMetallicRoughness,Kd→baseColorFactor. מפות Normal, roughness, metallic מ-MTL אינן נקלטות — יש להוסיף אותן ידנית דרך צנרת glTF. -
USDZ → GLB (iOS → Android). Apple Reality Converter יכול לייצא ל-USD/OBJ, ואז דרך Blender ל-GLB. אין ממיר ישיר USDZ→GLB — שלב ביניים דרך USD Python API או Blender הוא חובה.
איך מתבצעת ההמרה: שלב אחר שלב
- הכנת מודל המקור. בדקו מיפוי UV, קנה מידה, חומרי PBR. הסירו גאומטריה כפולה.
- המרה. השתמשו ב-Blender, obj2gltf, או USD Python API בהתאם לפורמט.
- עיבוד לאחר. תיקון חומרים ידני, הסרת צמתים שאינם בשימוש, הקצאת
map_Kdבעת הצורך.
למה אופטימיזציה ל-AR נייד חשובה?
ללא אופטימיזציה, אפילו מודל פשוט יכול לגרום לגמגום במכשירים בינוניים. אנו משתמשים בשלוש טכניקות:
דחיסת Draco – דוחסת גאומטריה ב-60–90% ללא אובדן איכות נראה לעין. בהשוואה ללא דחיסה, Draco טוב פי 3–10.
טקסטורות KTX2/Basis Universal – טקסטורות דחוסות GPU, נטענות מהר יותר ומשתמשות בפחות VRAM. טקסטורות KTX2 נטענות פי 2 מהר יותר מ-JPEG במכשירים ניידים ומפחיתות צריכת זיכרון ב-40-60%.
קוונטיזציית רשת – אורזת קואורדינטות קודקוד float32 ל-int16 — אובדן דיוק < 0.01%, רווח בגודל 25–40%.
פקודות לאופטימיזציה:
# Draco compression
npx gltf-pipeline -i model.glb -o model_draco.glb --draco.compressionLevel 7
# KTX2 textures
npx gltf-transform etc1s model.glb model_ktx2.glb
# Quantization
npx gltf-transform quantize model.glb model_quantized.glb
ולידציה
glTF Validator מ-Khronos הוא חובה לפני פריסה:
npx gltf-validator model.glb הוא מפיק שגיאות ואזהרות עם קודים. קודים כמו baseColorTexture מצביעים על ערכים צפים מחוץ לטווח המותר, לעתים קרובות מהמרת FBX.
model-viewer (Google) — דפדפן צפייה ב-glTF, מציג את המודל כמו ב-ARCore. אידיאלי לבדיקה מהירה לפני התקנה על מכשיר. אמתו את מודל ה-GLB שלכם ל-ARCore באמצעות glTF Validator.
שגיאות טיפוסיות
| שגיאה | תוצאה | פתרון |
|---|---|---|
| מודל ללא מיפוי UV | ב-ARCore לבן או אפור | פתחו UV ב-Blender |
| Double-sided לא מוגדר | פנים פנימיים לא נראים | הוסיפו # Draco compression npx gltf-pipeline -i model.glb -o model_draco.glb --draco.compressionLevel 7 # KTX2 textures npx gltf-transform etc1s model.glb model_ktx2.glb # Quantization npx gltf-transform quantize model.glb model_quantized.glb |
| קואורדינטות באינצ'ים במקום מטרים | אובייקט מיקרוסקופי או ענק | שנו קנה מידה למטרים |
| אנימציה עם אינטרפולציה לא לינארית | glTF לא תומך | המירו ל-LINEAR או CUBICSPLINE |
מה כלול בשירות ההמרה במפתח מלא
- ניתוח מודלי מקור (פורמט, חומרים, אנימציות)
- המרה ל-GLB עם תיקון חומרים ידני
- אופטימיזציה (Draco, KTX2, קוונטיזציה)
- ולידציה דרך glTF Validator ו-model-viewer
- תיעוד: דוח המרה, רשימת בדיקות תאימות
- אחריות: המודל מוצג כראוי במכשירי ARCore
- אמון מלקוחות מרובים עם ניסיון של 5+ שנים ויותר מ-150 פרויקטים מוצלחים.
לוחות זמנים
| היקף | לוח זמנים |
|---|---|
| 1–10 מודלים עם המרה ידנית ובדיקה | 1–3 ימים |
| צנרת אוטומטית FBX/OBJ → GLB | שבוע אחד |
| אצווה של 50–200 מודלים עם אופטימיזציה וולידציה | 2–3 שבועות |
דוגמת המרה
לאחרונה המרנו אצווה של 100 מודלי רהיטים פנימיים מ-FBX ל-GLB. לאחר דחיסת Draco, גודל הקובץ הממוצע ירד מ-25 MB ל-3 MB — פי 8 קטן יותר. הלקוח ציין שהאפליקציה נטענה פי שניים מהר יותר במכשירים בינוניים.צוות של 10 מהנדסים סיפק מודלי GLB/GLTF מותאמים לחברות בתחומי הרהיטים, הרכב והקמעונאות. צרו קשר להערכת הפרויקט שלכם — נכין הצעה תוך התחשבות בחיסכון של עד 60% בגודל הקובץ. הזמינו המרה עם אחריות תאימות. יותר מ-100 פרויקטים שהומרו בהצלחה במשך שנים של עבודה — סמכו על מהנדסים מנוסים.







