זמן פריים 28ms ב-Samsung Galaxy A53 עם יעד של 16.6ms. Unity Profiler מראה ש-Camera.Render לוקח 18ms מתוך זה. המפתח בודק את Frame Debugger — 340 קריאות ציור, שמחציתן הן UI Canvas במצב Screen Space - Overlay עם Rebuild בכל פריים. אנחנו פותרים בעיות כאלה ביום אחד, אבל ללא אבחון מדויק, איטרציות נמתחות לשבועות. הניסיון שלנו: מעל שמונה שנים בגיימדב, יותר מ-50 פרויקטים שבהם השגנו 60 FPS יציבים בחומרה בינונית.
ייעוץ באופטימיזציה ויזואלית עוסק באבחון צווארי בקבוק ומתן תוכנית פעולה קונקרטית, לא "תשתמשו בפחות פוליגונים." אנחנו מספקים לא רק דוח, אלא גם הבנה לצוות שלכם למצוא ולתקן בעיות באופן עצמאי בעתיד. אנחנו מבטיחים הפחתה של פי 2–3 בזמן תיקון באגים לאחר הייעוץ שלנו.
אילו בעיות אופטימיזציה ויזואלית פותרת?
צד CPU. UnityEngine.Rendering.RenderPipeline.Render ב-Profiler — נקודת הכניסה הראשונה. אם זה >10ms במובייל עם סצנה פשוטה, אנחנו חופרים עמוק יותר. Canvas.SendWillRenderCanvases — דגל לבעיית UI. ShadowCaster.Render — יותר מדי צללים או מרחק צל מופרז. Animator.Update עם הרבה אנימטורים פעילים בסצנה — כל Animator פעיל צורך CPU ללא קשר לנראות.
צד GPU. Snapdragon Profiler לאנדרואיד, Xcode GPU Frame Capture ל-iOS — מדויק יותר מ-Unity Profiler לניתוח GPU. Fillrate overdraw נראה דרך Unity Scene View במצב Overdraw — אזורים אדומים מצביעים על ציורים מרובים. בעיה אופיינית: מערכות חלקיקים עם מיזוג Additive מציירות 15–20 שכבות מעל הרקע — כל שכבה היא מעבר fillrate מלא.
זיכרון. חבילת Memory Profiler — לא ה-Profiler המובנה. תמונת מצב של heap מראה טקסטורות ספציפיות שצורכות VRAM. טקסטורה 4K לא דחוסה = 64 MB VRAM, גרוע יותר ללא mipmaps — כשהאובייקט רחוק, ה-GPU עדיין קורא ברזולוציה מלאה.
למה Dynamic Batching נכשל במובייל?
Dynamic batching מאגד אוטומטית meshes עם אותו חומר אם הם <=900 קודקודים ו-300 משולשים. אבל אם לאובייקטים יש ערכי MaterialPropertyBlock שונים (למשל, צבע שנקבע דרך סקריפט), האגד נשבר. GPU Instancing יעיל פי 3 ב-GPUs ניידים כי הוא מפחית קריאות ציור עם קריאת רינדור אחת למספר אובייקטים. מעבר ל-GPU Instancing הוא אחד השינויים היעילים ביותר.
אילו בעיות אופייניות אנחנו מוצאים?
- Canvas Rebuild בכל פריים.
Canvas.willRenderCanvasesמופעל על כל שינוי באלמנט ילד — הזזה, צבע, טקסט. אם HUD מעדכן טיימר כל שנייה, כל ה-Canvas מחושב מחדש. פתרון: פיצול Canvas לחלקים סטטיים ודינמיים. אלמנטים מונפשים על Canvas נפרד. - Shadow Distance. בפלטפורמות מובייל
Shadow Distance = 150(ברירת מחדל) מצייר צללים מדורגים לכל מה שנמצא בטווח 150 יחידות מהמצלמה. הצורך האמיתי — בדרך כלל 20–40 יחידות. הפרש זמן רינדור הצל הוא פי 3–4. - MipMap Streaming לא מוגדר. ללא
QualitySettings.streamingMipmapsActive = true, כל הטקסטורות נטענות ברזולוציה מלאה בתחילת הסצנה. למובייל עם 3–4 GB RAM זה קריטי — סצנה עם 200 טקסטורות יכולה לצרוך 600 MB VRAM בהתחלה.
איך מתנהל ייעוץ אופטימיזציה ויזואלית?
- ביקורת. אנחנו מריצים את הפרויקט על המכשיר המטרה עם Profiler מחובר, לוכדים כמה סצנות אופייניות. מנתחים פירוט פריים, קריאות ציור, fillrate, תמונת מצב זיכרון. תוצאה — רשימת צווארי בקבוק עם רווח פוטנציאלי משוער.
- תוכנית פעולה. תעדוף לפי יחס "מורכבות תיקון / רווח ביצועים." פירות נמוכים (מרחק צל, פיצול Canvas, דחיסת טקסטורות) קודם. שינויים ארכיטקטוניים (מעבר GPU Instancing, ארגון LOD) עם הערכת מאמץ.
- תמיכה ביישום. אנחנו מיישמים שינויים בעצמנו או מדריכים את הצוות במהלך תיקון עצמי. לאחרון: מדריך טכני כתוב עם הגדרות ספציפיות ותוצאות צפויות.
מה כלול בייעוץ אופטימיזציה ויזואלית?
- תיעוד: דוח עם גרפים, צילומי מסך של Profiler ו-Frame Debugger, המלצות לפי עדיפות.
- קוד אופטימיזציה: shaders מוכנים, סקריפטים להגדרת Instancing, קונפיגורציות ל-Addressables.
- גישה: גישה זמנית לדמו סטנד שלנו עם פתרונות ייחוס.
- הדרכה: מפגש של שעתיים לניתוח שגיאות אופייניות ומענה על שאלות הצוות.
- תמיכה: ייעוץ בקשיים שעולים במשך חודש לאחר השלב המרכזי.
אנחנו משתמשים בגישה משולבת: קודם פרופיל CPU למציאת צווארי בקבוק לוגיים, אחר כך פירוט GPU דרך RenderDoc ו-Snapdragon Profiler. זה חושף גם בעיות גלויות וגם נסתרות — למשל, הגדרת LOD שגויה או שימוש לא יעיל ב-shader.
כלים שאנחנו משתמשים בהם
| כלי | מטרה | פלטפורמה |
|---|---|---|
| Unity Profiler + Frame Debugger | פרופיל CPU/GPU, קריאות ציור | Unity Editor |
| RenderDoc | ניתוח GPU מפורט | PC, קונסולות |
| Snapdragon Profiler | פרופיל GPU לאנדרואיד | אנדרואיד (Adreno) |
| Xcode GPU Frame Capture | פרופיל GPU ל-iOS | iOS (Metal) |
| Memory Profiler 1.1+ | ניתוח VRAM, טקסטורות | Unity Editor |
לוחות זמנים וחיסכון
| סוג ייעוץ | משך | זמן שנחסך לצוות |
|---|---|---|
| ביקורת אקספרס + דוח (סצנה אחת, פלטפורמה אחת) | 1–3 ימים | עד שבועיים של פתרון בעיות עצמי |
| ביקורת ביצועים מלאה + תוכנית אופטימיזציה | 5–10 ימים | עד 4 שבועות במציאת פתרונות |
| ביקורת + יישום אופטימיזציות | 2–6 שבועות | הסרה מלאה של כאב ראש ל-FPS |
חיסכון ממוצע בפרויקט — הפחתת תקציב דיבאג ב-30–50% בזכות זיהוי מדויק של גורם השורש. עלות הייעוץ קבועה לאחר ניתוח ראשוני של הפרויקט ופלטפורמות המטרה. צרו קשר כדי לדון בפרויקט שלכם ולקבל הערכה ראשונית. הזמינו ייעוץ, ואנחנו נעזור לפתור בעיות ביצועים.





