אופטימיזציה של מודלים תלת-ממדיים ל-AR (LOD, טקסטורות, ספירת פוליגונים)

המודלים התלת-ממדיים שלכם נראים מצוין בעורך, אבל ב-AR הם מאטים ומחממים את הטלפון? אנחנו מייעלים מודלים ל-GPU ניידים: מצמצמים את מספר הפוליגונים, דוחסים טקסטורות ומגדירים LOD. הצוות שלנו מספק פרויקטים מסוג מפתח-לצרכן, החל מבדיקת היתכנות ועד תמיכה שוטפת, ומבטיח ביצועים יציבים של תוכן AR.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

יישומים ניידים למידע ובידור
אפליקציות חדשות, משחקים, מדריכים, קטלוגים מקוונים, אפליקציות מזג אוויר, אפליקציות כושר ובריאות, אפליקציות נסיעות, אפליקציות חינוכיות, רשתות חברתיות ומסנג'רים, חידונים, בלוגים ופודקאסטים, פורומים, אגרגטורים
יישומים ניידים למסחר אלקטרוני
חנויות מקוונות, אפליקציות B2B, מרקטפלייסים, בורסות מקוונות, שירותי קאשבק, בורסות, פלטפורמות דרופשיפינג, תוכניות נאמנות, משלוחי מזון ומוצרים, מערכות תשלום.
יישומים ניידים לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, ניהול פרויקטים, כלים לצוותי מכירות, ניהול פיננסי, ניהול ייצור, ניהול לוגיסטיקה ומשלוחים, ניהול משאבי אנוש, מערכות ניטור נתונים
יישומים ניידים לשירותים אלקטרוניים
פלטפורמות מודעות מסווגות, בתי ספר מקוונים, בתי קולנוע מקוונים, פלטפורמות שירות אלקטרוניות, פלטפורמות קאשבק, אירוח וידאו, פורטלים נושאיים, פלטפורמות הזמנות ותזמון מקוונות, פלטפורמות מסחר מקוונות

אלה הם רק חלק מסוגי היישומים הניידים שאנו עובדים איתם, ולכל אחד מהם עשויים להיות מאפיינים ופונקציונליות ספציפיים משלו, המותאמים לצרכים ולמטרות הספציפיות של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
אופטימיזציה של מודלים תלת-ממדיים ל-AR (LOD, טקסטורות, ספירת פוליגונים)
בינוני
~2-3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

3D-אמן מסר מודל של כיסא — 1.2 מיליון פוליגונים, טקסטורות 8192×8192 PNG. ב-Cinema 4D הרינדור נראה מצוין. ב-AR באייפון — 18 FPS והתחממות תוך 3 דקות. אנחנו נתקלים במקרים כאלה כל הזמן. הניסיון שלנו מראה: הבעיה אינה באפליקציה ולא ב-ARKit — המודל לא מוכן ל-GPU נייד. מצב כזה מוביל לביטול הדגמה ללקוח ולאובדן זמן. כל פרויקט שני של ויזואליזציית AR נתקל בזה.

אופטימיזציה של מודלי 3D ל-AR — משימה הדורשת הבנה של ארכיטקטורת GPU ניידים. אנחנו פותרים אותה באופן מקיף: מורידים פוליגונים, דוחסים טקסטורות, מגדירים LOD. התוצאה — 60 FPS יציבים במכשירים. זה מאפשר להציג תוכן AR ללא לאגים והתחממות. לקוחות חוסכים בכל פרויקט בזכות הפחתת זמן טעינה ועלויות אחסון.

למה פוליגונים חשובים ל-AR?

על מסך הטלפון המרחק לאובייקט AR הוא 0.5–3 מטרים. במרחק זה פירוט מעל 100–150K פוליגונים אינו ניתן להבחנה ויזואלית מ-50K. כלל הפרקטיקה:

גודל אובייקט פוליגונים מומלצים מרחק צפייה
קטן (כוס, טלפון) 5,000–15,000 0.3–1 מ'
בינוני (כיסא, מנורה) 15,000–50,000 0.5–2 מ'
גדול (ספה, ארון) 30,000–80,000 1–3 מ'
גדול מאוד (רכב) 50,000–120,000 2–10 מ'

Decimation ב-Blender: Modifier → Decimate → Collapse עם Ratio = 0.05–0.1 למודלים מורכבים נותן תוצאה רצויה ללא רטופולוגיה ידנית. Quadric Edge Collapse Decimation שומר טוב יותר על צורת קצוות מאשר Unsubdivide.

לאחר decimation — בדיקה חובה ב-AR במכשיר היעד, לא רק בתצוגה מקדימה של העורך. צללית האובייקט חשובה יותר מפרטים פנימיים — אנו מפענחים אחרת.

איך לבדוק מודל מוכן - בנו את המודל ב-Xcode או Android Studio. - הריצו על מכשיר עם iOS 15+ או Android 11+. - ודאו ש-FPS לא יורד מתחת ל-50 במשך 10 דקות. - בדקו חימום: המכשיר לא צריך להיות חם למגע.

איך לבחור פורמט טקסטורות?

ההשפעה הגדולה ביותר על ביצועים היא טקסטורות, לא פוליגונים. ASTC (Adaptive Scalable Texture Compression) — הפורמט הנכון ל-AR נייד. נתמך על ידי כל ARM Mali ו-Qualcomm Adreno GPU מאמצע העשור הקודם. ASTC 6×6 נותן בערך 2.37 bpp לעומת 32 bpp ב-PNG — פי 13 פחות זיכרון GPU עם אובדן איכות מינימלי. פרטים נוספים על דחיסת טקסטורות קראו בWikipedia.

ETC2 — fallback אוניברסלי למכשירים ישנים (GLES 3.0+). גרוע מ-ASTC באיכות דחיסה, אבל נתמך רחב יותר.

לעולם אל תשתמשו ב-PNG/JPEG בטקסטורות של סצנת AR. PNG מפוענח ל-RGBA8888 מלא — לטקסטורה 2048×2048 זה 16 MB זיכרון GPU. ASTC 2048×2048 — בערך 2 MB.

יצירת ASTC דרך astcenc (שורת פקודה):

astcenc -cl input.png output.astc 6x6 -medium 

ב-Xcode Asset Catalog: מוסיפים טקסטורה, מגדירים Compression = Lossy → אוטומטית ASTC ב-iOS. באנדרואיד — קומפילציה דרך Android Studio או ב-CI דרך texturetool.

גודל טקסטורות. כלל: גודל הטקסטורה פרופורציונלי לשטח הנראה של האובייקט על המסך. לאובייקט שתופס 20% מהמסך — טקסטורה 512×512 נותנת תוצאה בלתי ניתנת להבחנה מ-2048×2048. Mipmap חובה: SceneKit ו-ARCore משתמשים אוטומטית ברמת mipmap המתאימה לגודל התצוגה.

יישום LOD ל-AR

בניגוד למנועי משחק, ל-ARKit SceneKit אין מנהל LOD מובנה. אנו מיישמים דרך SCNLevelOfDetail. הנה דוגמת קוד:

let highPolyGeometry = loadGeometry("chair_high.usdz") // 50K פוליגונים
let medPolyGeometry = loadGeometry("chair_med.usdz") // 15K פוליגונים
let lowPolyGeometry = loadGeometry("chair_low.usdz") // 5K פוליגונים
let lod1 = SCNLevelOfDetail(geometry: medPolyGeometry, screenSpaceRadius: 100)
let lod2 = SCNLevelOfDetail(geometry: lowPolyGeometry, screenSpaceRadius: 30)
node.geometry?.levelsOfDetail = [lod1, lod2]

screenSpaceRadius — רדיוס כדור חוסם בפיקסלי מסך. בערך 100 — המודל תופס בערך 200×200 פיקסלים. המספרים נבחרים עבור כל אובייקט אמפירית. פרטים נוספים — בSCNLevelOfDetail.

באנדרואיד ARCore עם Filament LOD מיושם דרך MaterialInstance swap או דרך RenderableManager.Builder.boundingBox() ל-culling.

USDZ / glTF: הפורמט הנכון ל-AR

USDZ (iOS, macOS) — קונטיינר מבוסס OpenUSD של Pixar. מכיל גיאומטריה, חומרים, אנימציות, פיזיקה. תומך ב-AR Quick Look ללא קוד. Reality Converter (אפליקציית macOS של אפל) ממיר מ-FBX/OBJ/glTF ל-USDZ עם אופטימיזציה בו-זמנית של טקסטורות.

glTF 2.0 (Android/Cross-platform) — תקן פתוח, נתמך באופן טבעי על ידי Filament ו-Sceneform. glb — גרסה בינארית, מועדף ל-AR (קובץ אחד במקום כמה). אופטימיזציה דרך gltf-pipeline:

gltf-pipeline -i model.gltf -o model_opt.glb \ --draco.compressMeshes --draco.quantizePositionBits 14 

דחיסת Draco (גוגל) מקטינה גודל גיאומטריה פי 5–10 באמצעות דחיסה מאבדת. איכות נשלטת על ידי quantizeBits — 14 ביט מספיק לרוב אובייקטי AR.

בחירת הפורמט תלויה בפלטפורמה: USDZ — תמיכה טבעית ב-AR Quick Look, גודל קטן, אבל רק iOS. glTF + Draco — חוצה פלטפורמות, דחיסה חזקה, אבל צריך טוען. לפרויקטים חוצי פלטפורמות בוחרים לעתים קרובות glTF, למערכת האקולוגית של iOS — USDZ.

איך אנחנו עושים זאת: מחסנית ותהליך

אנו משתמשים ב-Blender ל-decimation, astcenc לדחיסה, Xcode ו-Android Studio לבדיקות. התהליך מחולק לשלבים:

  1. ניתוח מודלים מקוריים: זיהוי פוליגונים עודפים, גודל טקסטורות, חוסר LOD.
  2. Decimation לפוליגונים יעד (ירידה ממוצעת פי 10).
  3. דחיסת טקסטורות ל-ASTC/ETC2 עם יצירת mipmap.
  4. יצירת רמות LOD (עד 3 רמות).
  5. ייצוא ל-USDZ או glTF עם דחיסת Draco.
  6. בדיקה על מכשירים אמיתיים (iPhone ו-Android).

יותר מ-5 שנות ניסיון בפיתוח AR ויותר מ-200 פרויקטים מוצלחים מאשרים: גישה זו מבטיחה תוצאה. דוגמה מהפרקטיקה: מותג רהיטים גדול רצה להציג קטלוג ב-AR. המודלים המקוריים שקלו 200 MB כל אחד. הורדנו פוליגונים ל-30K, דחסנו טקסטורות ל-ASTC, הוספנו LOD. המודלים הסופיים — 15 MB, סצנת AR עבדה ב-60 FPS אפילו ב-iPhone X. חיסכון באחסון והעברה — כ-$270–390 לחודש לקטלוג של 50 מודלים.

מקור: דוח פרויקט למותג רהיטים.

רשימת בדיקה לבדיקה עצמית

  • פוליגונים < 100K לאובייקטים בינוניים.
  • טקסטורות דחוסות ב-ASTC או ETC2.
  • גודל טקסטורות ≤ 1024×1024 לאובייקטים שאינם בחזית.
  • LOD מוגדר (לפחות 2 רמות).
  • פורמט — USDZ (iOS) או glTF (Android).

מה כולל העבודה

במסגרת השירות אנו מספקים:

  • ניתוח מודלים מקוריים ודוח אופטימיזציה.
  • Decimation, דחיסת טקסטורות, יצירת רמות LOD.
  • ייצוא ל-USDZ/glTF עם דחיסת Draco.
  • בדיקה על מכשירי יעד (iOS/Android).
  • תיעוד של ה-pipeline והמלצות לשימוש עתידי.
  • הדרכה לצוות שלך לעבודה עם מודלים מותאמים.

זמנים ועלות

אופטימיזציה של מודל אחד אורכת בין 0.5 ליום אחד. לקטלוג של 20–50 מודלים — 1–2 שבועות עם הגדרת pipeline אוטומטי. העלות מחושבת באופן אישי לפי מורכבות והיקף. צרו קשר להערכת הפרויקט שלכם — נכין הצעה מסחרית. הזמינו ייעוץ, וננתח את המודלים שלכם לקראת הצעה.