מפת נורמלים (Normal Map) שאפויה כראוי הופכת מודל Low-Poly עם 3,000 פוליגונים לבלתי ניתן להבחנה ממודל High-Poly מקורי עם מיליון פוליגונים. מפת נורמלים גרועה יוצרת פסים כהים בקצוות, תפרים בגבולות UV, ומשטחים שטוחים תחת תאורה צדדית. מבחינה טכנית, אפיית מפת נורמלים אורכת דקות. אפייה נכונה דורשת הגדרות ספציפיות, הבנה של מרחב טנגנס (Tangent Space), ויכולת לצפות ארטיפקטים לפני שהם מופיעים. אנחנו נמצאים בצנרת פיתוח המשחקים (Gamedev Pipeline) למעלה מ-5 שנים ואפינו נכסים ל-15+ משחקים, כולל פרויקטים למובייל ולמחשב. המומחיות שלנו מבטיחה תוצאה נקייה שעוברת QA בכל מנוע.
מדוע מתרחשים ארטיפקטים במפות נורמלים?
אי-התאמה במרחב טנגנס – אפיית מפות נורמלים
זו ככל הנראה הסיבה הכי פחות מובנת מאליה למפת נורמלים "נכונה" שנראית שגויה במנוע. Marmoset Toolbag, xNormal, Substance Painter, וכל מנוע משתמשים במוסכמות מרחב טנגנס שונות. Unity (Standard ו-URP/HDRP) – MikkTSpace. Unreal Engine – גם MikkTSpace, אבל עם טיפול ספציפי בקצוות קשים (Hard Edges) ב-UE4 לעומת UE5. Godot – MikkTSpace. אם מפה נאפית במרחב טנגנס אחד ומיובאת למנוע עם מרחב טנגנס אחר, מקבלים תאורה שגויה: הבזקים מוזרים במקומות לא נכונים במקום תבליט.
פתרון: ב-Marmoset Toolbag 4, הגדר Tangent Space → MikkTSpace. ב-Substance Painter, זו ההגדרה בעת ייבוא המשל (Compute Tangent Space Per Fragment). ודא את התוצאה במנוע בפועל, לא רק בתצוגה המקדימה של הכלי.
אי-התאמה בין קצה קשה (Hard Edge) לתפר UV
גיאומטריית Hard-Surface סטנדרטית כוללת קצוות קשים (הפסקות בקבוצות החלקה) בקצוות מבניים. אם תפר ה-UV אינו חופף לקצוות אלה, כלי האפייה יבצע אינטרפולציה של נורמלים על פני התפר – התוצאה: פס כהה או בהיר לאורך הקצה. הכלל: כל קצה קשה חייב להיות תפר UV, וכל תפר UV על Hard-Surface חייב להיות קצה קשה. זה חובה, לא המלצה.
ב-Blender, זה נעשה באמצעות Edge → Mark Sharp + Mark Seam על אותם קצוות. ב-Maya – Mesh Display → Soften/Harden Edge ותפר UV על קצוות חופפים. ב-3ds Max – קבוצות החלקה (Smoothing Groups) ותפר UV לפי אותו היגיון.
כלוב (Cage) והחטאות הקרנה
לגיאומטריה מורכבת עם צורות קעורות, חלקים צפים, או פער גדול בין HP ל-LP ב-Marmoset Toolbag, יש לעבוד עם קבוצות אפייה (Bake Groups). כל חלק צף הוא קבוצה נפרדת עם היסט כלוב (Cage Offset) אישי. ללא זה, כלי האפייה מטיל קרניים דרך גיאומטריה שגויה ומקבל כתמים שחורים או נורמלים הפוכים באזורי חיתוך.
כיצד להגדיר אפייה ב-Marmoset Toolbag 4?
Marmoset Toolbag 4 הוא הכלי המרכזי לאפיית production. הגדרות לאפייה סופית:
- Samples: 512 למפות 4096, 256 למפות 2048. ערכים נמוכים יותר גורמים לרעש במעברים מורכבים.
- Dilation: 32px למפות 4096, 16px למפות 2048. קריטי למניעת דימום Mip-Map.
- Tangent Space: MikkTSpace (לרוב המנועים).
- Max Frontal / Rear Distance: אישי לכל נכס. מרחק אחורי גדול מדי – כלי האפייה לוכד גיאומטריה מהצד האחורי. קטן מדי – מפספס חלקים עם היסט גדול מה-LP.
לגיאומטריה צפה: קבוצת אפייה נפרדת לכל קבוצה צפה. Max Frontal Distance = מעט גדול יותר מהמרחק ממשטח ה-LP לנקודה הרחוקה ביותר של האובייקט הצף. Rear Distance = מינימלי.
ב-xNormal, אנו משתמשים באותה גישה אבל דרך קובץ .hnmap עם הגדרות כלוב לכל נכס. xNormal מהיר יותר בסצנות גדולות ושימושי לאפייה אצווה (Batch Baking) כשצריך לאפות 50+ אובייקטים בו-זמנית.
השוואת כלי אפייה:
| כלי | מהירות | מרחב טנגנס | תכונות |
|---|---|---|---|
| Marmoset Toolbag 4 | גבוהה | MikkTSpace | תצוגה מקדימה הטובה ביותר, תמיכה בכלוב |
| xNormal | גבוהה מאוד | סטנדרטי (ניתן להגדרה) | האפייה האצווה הטובה ביותר, קוד פתוח |
| Substance Painter | בינונית | Per Fragment | אינטגרציה עם טקסטורינג |
כיצד לוודא את מפת הנורמלים לפני מסירה?
אנחנו תמיד בודקים את המפה האפויה במנוע בפועל, לא רק ב-Marmoset. הסיבה: התצוגה המקדימה של Toolbag משתמשת במנוע PBR משלה, שיכול להסתיר בעיות שהופכות גלויות תחת תאורה סטנדרטית במנוע.
דוגמה לארטיפקט: פס על קצה קשה
אם הקצה הקשה ותפר ה-UV אינם תואמים, מופיע פס כהה או בהיר על הקצה. ניתן לזהות זאת בתאורה בזווית גרזינג (Grazing Angle) במנוע.רשימת בדיקה לאימות:
- תאורה משלושה כיוונים: אור ראשי, צד, תאורה אחורית
- זוויות קיצוניות: מצלמה כמעט מקבילה למשטח (זווית גרזינג)
- בדיקת קצוות: אין פסים כהים לאורך קצוות קשים
- בדיקת תפרים: אין תפרים גלויים לאורך גבולות UV
אם המפה עוברת בדיקות במנוע, היא מוכנה. אנו מבטיחים שביצוע שלבים אלה מניב מפת נורמלים נקייה ללא ארטיפקטים.
מה כלול בעבודה
- ייעוץ להכנת גיאומטריית High-Poly ו-Low-Poly
- הגדרת פרויקט אפייה ב-Marmoset Toolbag 4 / xNormal לפי המשימה
- אפיית כל המפות הנדרשות: Normal, Ambient Occlusion, Cavity, Curvature, Thickness, World Space Normal
- QA במנוע היעד (Unity, Unreal, Godot)
- מסירת קבצי מקור (.fbx, .tga, קבצי פרויקט)
- התאמת UV במידת הצורך
הערכות זמנים
| נכס | מפות | משך זמן |
|---|---|---|
| אביזר פשוט (נשק, כלי) | Normal + AO | 2–6 שעות |
| אובייקט ברמת מורכבות בינונית (רכב, חלקים) | PBR מלא | 4–10 שעות |
| דמות (אריח UV אחד) | PBR מלא | 1–3 ימים |
| נכס מורכב עם חלקים צפים | PBR מלא | 2–4 ימים |
| דמות UDIM (4–6 אריחים) | PBR מלא לכל אריח | 3–6 ימים |
המחיר מחושב באופן אישי. נדרש: High-Poly (FBX/OBJ), Low-Poly עם UV מוכן, ומידע על מנוע היעד.
צור קשר כדי לדון בפרויקט שלך ולקבל ייעוץ על הצנרת. בקש הערכה של הנכס שלך על בסיס רפרנסים – זה לוקח יום אחד.





