עודכן לאחרונה: 21 Sept, 2026

פורמטים של קבצי תמונה למפתחי משחקים: DDS, TGA, PNG, ו‑KTX
בפיתוח משחקים, מרקמים מהווים את החלק הגדול ביותר הן בצריכת זיכרון בזמן ריצה והן בגודל בניית ההתקנה. בין אם אתה בונה פלטפורמר אינדי מעוצב או דוחף פוטוריאליזם ב‑AAA RPG פתוח‑עולם, האופן שבו אתה מאחסן, מעבד ומקבל נתוני מרקמים קובע ישירות את קצב הפריימים, זמני הטעינה וההתאמה לחומרה.
טעות נפוצה למתחילים היא להתייחס למרקמי משחקים כמו גרפיקה אינטרנטית — להניח שקובץ קל על הדיסק מתורגם לביצועים קלים במנוע המשחק שלך. בעולם ה‑GPU, המציאות בזמן ריצה שונה לחלוטין.
במאמר מעמיק זה, אנו מפרקים את ארבעת פורמטי הקבצים החשובים ביותר למרקמים ותמונות בפיתוח משחקים מודרני: DDS, TGA, PNG, and KTX. נבדוק כיצד הם פועלים, היכן הם מתאימים בצינור הנכסים ומתי להשתמש בכל אחד.
הכלל הזהב: אחסון בדיסק מול זיכרון וידאו (VRAM)
לפני פירוק הפורמטים הבודדים, על המפתחים להבין את ההבדל הבסיסי בין דחיסת אחסון בדיסק ל‑דחיסת בלוק חומרת GPU.
1. דחיסת דיסק (PNG, JPEG, WebP)
פורמטים כמו PNG משתמשים בקידוד אנטרופיה ללא אובדן (DEFLATE). בעוד PNG חוסך כמויות עצומות של מקום ב‑SSD או בשרת ההורדות, GPUs מודרניים לא יכולים לדגום קבצי PNG ישירות. כאשר מנוע המשחק שלך טוען PNG:
- המעבד (CPU) חייב לפענח את הקובץ לפיקסלים גולמיים, לא דחוסים של 32‑bit RGBA בזיכרון המערכת.
- תמונת הביטמפה הלא דחוסה מועברת ל‑VRAM.
- מרקם בגודל 2048×2048 צורך בערך 16 MB של VRAM, ללא קשר אם קובץ ה‑PNG היה בגודל 1 MB או 3 MB בדיסק.
2. דחיסת בלוקים של GPU (BCn, ASTC, ETC2)
פורמטים ייעודיים של GPU דוחסים בלוקים קבועים של פיקסלים (בדרך כלל בלוקים של 4×4 פיקסלים) לייצוגים ביטיים קטנים יותר. חומרת הגרפיקה מדגימה את הבלוקים האלה ישירות ב‑VRAM ללא פענוח בצד ה‑CPU:
- גישה אקראית ישירה ל‑VRAM ללא עלות פענוח בזמן ריצה.
- אותו מרקם 2048×2048 המשתמש ב‑BC7/ASTC צורך רק בערך 4 MB של VRAM (הפחתה של 75%).
- ניתן לשלב מיפמפים (Mipmaps) ישירות בקובץ המכולה.
מכולות כגון DDS ו‑KTX נבנים במיוחד כדי לעטוף את הפורמטים הטבעיים של GPU, בעוד PNG ו‑TGA משמשים בתפקידים שונים בשלבים מוקדמים יותר של הצינור.
1. DDS (משטח DirectDraw)
הוצג על ידי מיקרוסופט יחד עם DirectX 7, פורמט DirectDraw Surface (.dds) הוא הסוס המרוץ הבלתי מעורער של התעשייה לפיתוח משחקי PC, Xbox וקונסולות.
מאפיינים טכניים
- סוג מכולה: מכולת מרקם GPU מקומית.
- דחיסה נתמכת: BC1 עד BC7 (Block Compression / משפחת DXT), RGBA ללא דחיסה, פורמטים צפים (BC6H ל‑HDR).
- יכולות מפתח: מיפמפים מוקפאים מראש, מפות קובייה, מערכי מרקמים, מרקמים נפחיים (3D).
למה מפתחים משתמשים ב‑DDS
DDS הוא בעצם יצוא זיכרון ישיר של מה שהחומרה הגרפית דורשת. בעת טעינת מרקם DDS עם מיפמפים שנוצרו מראש, המנוע מדלג לחלוטין על דחיסת ה‑CPU ומבצע העתקת זיכרון ישירה ל‑Direct3D או Vulkan אל ה‑GPU. זה מבטל צווארי בקבוק של ה‑CPU במהלך הזרמת נתונים וטעינת רמות.
יתרונות
- זמני טעינה מהירים מאוד: אין צורך במחזורי דחיסה של CPU בזמן ריצה.
- מיפמפים מוקפאים מראש: יצירת מיפמפים במצב לא מקוון מאפשרת סינון, חידוד ונרמול של מפות נורמליות בשליטה של האמן על פני רמות פירוט (LOD).
- יעילות VRAM: משתמש באלגוריתמי דחיסת BC סטנדרטיים בתעשייה באופן מקורי.
חסרונות
- DirectX/Windows Bias: קשור היסטורית למערכות של מיקרוסופט, אך נתמך באופן נרחב במנועי שולחן עבודה מודרניים.
- Lossy Compression Artifacts: דחיסת בלוקים (במיוחד BC1 במפות נורמליות) יכולה לגרום לחסימות אלא אם משתמשים ב‑BC5/BC7.
- Limited Mobile Support: כרטיסי GPU ניידים בדרך כלל מעדיפים ASTC או ETC2 על פני פורמטים של BC למחשבים שולחניים.
2. TGA (Truevision Targa)
נוצר ב‑1984, TGA (.tga) הוא פורמט קובץ גרפיקה רסטרית ללא דחיסה או עם קידוד רץ-אורך (RLE) שהמשיך להיות מרכיב בסיסי בתהליך הפיתוח במשך יותר משלושה עשורים.
מאפיינים טכניים
- Container Type: תמונת ביט ללא דחיסה ליצירה/החלפה.
- Bit Depths: 8, 16, 24, ו‑32 ביטים לכל פיקסל (RGB + ערוץ אלפא ייעודי של 8 ביטים).
- Compression: ללא דחיסה או RLE בסיסי (קידוד רץ‑אורך).
למה מפתחים משתמשים ב‑TGA
TGA מועדף על ידי אמנים טכניים ומתכנתי מנועים בזכות הפשטות האדריכלית שלו. בניגוד ל‑PNG, שמשלב ערוץ אלפא במטריצות סינון מורכבות, TGA משאיר את נתוני הצבע וערוצי האלפא נפרדים לחלוטין ולא משוכפלים.
כאשר יוצרים מסכות מותאמות (למשל, אריזת Roughness באדום, Metallic בירוק, Ambient Occlusion בכחול, ו-Height באלפא), TGA מבטיחה שאין ערבוב אלגוריתמי עדין או דליפת צבע בין הערוצים.
יתרונות
- אמת נתונים נקייה: שימור מדויק של ערכי הערוצים ברמת ביט; אידיאלי לטקסטורות ORM (Occlusion-Roughness-Metallic) ארוזות בערוצים.
- פירוש טריוויאלי: כלי צינור עבודה פנימיים, מייצאים מותאמים וסקריפטים אוטומטיים יכולים לקרוא ולכתוב קבצי TGA עם מינימום שורות קוד.
- תמיכה אוניברסלית ב‑DCC: Maya, 3ds Max, Blender, Substance 3D, ו‑Photoshop מציעים ייצוא TGA מקורי וללא בעיות.
חסרונות
- גודל קבצים עצום: טביעת רגל גדולה במאגרי Git/Perforce ומהירות הורדה איטית בצוותים מבוזרים.
- לא מתאים להרצה בזמן ריצה: לא ניתן לצרוך ישירות על ידי ה‑GPU כפורמט דחוס; חייבים להמיר אותו במנוע בזמן הבישול.
3. PNG (Portable Network Graphics)
PNG (.png) הוא פורמט התמונה ללא איבוד המוכר ביותר בעולם, משתמש בדחיסת zlib/DEFLATE כדי לארוז תמונות עשירות של 24‑ביט ו‑32‑ביט לקבצים קטנים במידה משמעותית.
מאפיינים טכניים
- סוג מכולה: פורמט כתיבה והפצה ללא איבוד.
- עומק סיביות: עד 16 סיביות לכל ערוץ (48-bit RGB, 64-bit RGBA).
- דחיסה: אלגוריתם DEFLATE ללא איבוד.
למה מפתחים משתמשים ב-PNG
PNG משמש כפורמט ההפצה הראשי עבור נכסי UI, ספרייטים, חומרי קידום, וטקסטורות מקור ביניים. עבור משחקי 2D שנבנים ב-Unity, Godot, או Unreal Engine, PNG מספק דיוק פיקסלים חד עם מסכות שקיפות מושלמות.
יתרונות
- טביעת רגל קומפקטית של המאגר: מצמצמת משמעותית את גודל ההורדה של הפרויקט בהשוואה ל‑TGA לא דחוס.
- איכות צבע ללא איבוד: אפס ארטיפקטים של דחיסה בקצוות בעלי ניגוד גבוה ואיורים בסגנון וקטורי.
- שקיפות אלפא מקומית: תמיכה בערוץ אלפא של 8‑ביט נקי עבור אלמנטים UI שקופים מורכבים ועלי חלקיקים.
חסרונות
- פענוח כבד על ה‑CPU: דחיסת PNG גדולים בזמן ריצה גורמת להשהיית קצב הפריימים ולעלייה פתאומית בשימוש בזיכרון לפני העלאה ל‑GPU.
- בעיות אלפא מוכפל מראש: כמה עורכי תמונה מסירים נתוני RGB בפיקסלים שקופים לחלוטין, מה שמקלקל דליפת מרקמים וגורם לקווי מתאר כהים סביב ספרייטים.
- חיסכון באפס VRAM: מפענח לזיכרון גולמי של 32‑ביט מלא בתוך ה‑GPU אלא אם נצרך על ידי מכשיר הטקסטורות של המנוע.
4. KTX (Khronos Texture) ו‑KTX 2.0
פותח על ידי Khronos Group—הגוף הממשלתי מאחורי Vulkan, OpenGL, ו‑glTF—KTX (.ktx) ו‑KTX 2.0 מייצגים את הסטנדרט הפתוח המודרני לטקסטורות GPU חוצות פלטפורמות.
מאפיינים טכניים
- סוג מכולה: מכולת טקסטורות GPU פתוחה וממוסדת.
- תמיכה בדחיסה: Basis Universal (ETC1S ו‑UASTC), ASTC, BCn, ETC2.
- יכולות מרכזיות: קידוד מחדש אוניברסלי של טקסטורות, מיפמפים, קובמפים, טקסטורות מערך, אינטגרציה עם glTF.
למה מפתחים משתמשים ב-KTX
KTX 2.0 פותר את דילמת הדחיסה המפוצלת חוצת הפלטפורמות. באופן מסורתי, מפתחים היו צריכים לשגר DDS (BCn) למחשבים שולחניים/קונסולות ו‑ASTC/ETC2 למובייל/טאבלטים.
עם KTX 2.0 ו‑Basis Universal:
- אתה מאחסן טקסטורות בפורמט קומפקטי, דחיסי אוניברסלית.
- בזמן ריצה, החומרה של הלקוח ממירה את הקובץ ישירות לכל פורמט בלוק שה‑GPU המקומי מעדיף (למשל, BC7 ב‑GeForce RTX, ASTC ב‑iPhone, ETC2 במכשיר Android ישן).
- דחיסה‑על (Zstandard) מייצרת קבצים הקטנים יותר מ‑JPEG על הדיסק, שממירים לבלוקים טבעיים ב‑VRAM במילישניות.
יתרונות
- תקן חוצת‑פלטפורמות אמיתי: פועל ללא בעיות על Vulkan, WebGL, WebGPU ומכשירי נייד.
- המרה אוניברסלית של Basis: בנייה יחידה של נכס ממקדת שולחן עבודה, מובייל ודפדפן ללא ייצוא מרקמים משוכפל.
- חבר glTF ברמה ראשונה: חיוני לחוויות רשת תלת‑ממד מודרניות, מנועי מטאוורס וצינורות רינדור פתוחים.
חסרונות
- בגרות כלי הצינור: דורש שרשראות בנייה מודרניות (כגון
toktxמחבילת KTX-Software); מנועים קנייניים ישנים עשויים לחסר אינטגרציה מיידית. - עומס הממיר: השהייה קלה של המרה בזמן ריצה (אם כי מהירה בעשרות סדרי גודל מהקידוד המלא של PNG בתוכנה).
השוואה ראש-לראש
| תכונה / קריטריונים | DDS | TGA | PNG | KTX / KTX 2.0 |
|---|---|---|---|---|
| מקרה שימוש ראשי | סביבת ריצה למחשב/קונסולה | יצירת מקור & מסכות | ספרייטים דו‑ממדיים & אומנות מקור | סביבת ריצה חוצת פלטפורמות & אינטרנט |
| דגימה ישירה של GPU | כן (מקורי) | לא | לא | כן (מקורי או מקודד מחדש) |
| דחיסת VRAM | כן (BC1–BC7) | לא (לא דחוס) | לא (לא דחוס) | כן (ASTC, BCn, Basis) |
| מיפמפים מוכנים מראש | כן | לא | לא | כן |
| גודל דיסק | בינוני | גבוה מאוד | קטן | קטן קיצוני (Basis + Zstandard) |
| אקוסיסטם | DirectX / מנועי שולחן עבודה | תוכנת DCC / צינורות מקור | מנועי אינטרנט ו‑2D אוניברסליים | Vulkan, WebGPU, glTF |
מדריך מעשי: בניית צינור נכסים אידיאלי
איך עליך לארגן את ארבעת הפורמטים האלה בצינור ייצור מסחרי? הנה איך סטודיואים מובילים מארגנים את צינורות המרקמים שלהם:
[DCC & Authoring] [Engine Ingestion / Cook] [Runtime GPU Target]
Substance / Photoshop / Blender Unreal / Unity / Custom Toolset VRAM Memory Blocks
• TGA (Clean packed masks) ──────► Build Engine Texture Cooker ──────► DDS (DirectX / Windows / Xbox)
• PNG (UI & 2D Sprites) ──────► Generates Mipmaps & Block ──────► KTX2 (Vulkan / WebGPU / Mobile)
• PSD / EXR (HDR & masters) ──────► Compression Automatically
- קבצי מקור: שמור קבצים ראשיים ונתונים ארוזים בערוצים ב-TGA או PNG במאגרי הפרויקט שלך כדי להבטיח מידע צבעי שלא נפגע.
- גרסאות PC וקונסולה: המר את מרקמי המקור שלך לקבצי DDS תוך שימוש ב‑BC7 למפות אלבודו/נורמל מפורטות וב‑BC4/BC5 למסכות ערוץ יחיד וכפול.
- גרסאות חוצות פלטפורמות, אינטרנט ונייד: ארוז נכסי 3D בזמן ריצה ל‑KTX 2.0 כדי לנצל קידוד אוניברסלי על פני Android, iOS, ו‑WebGPU ללא צורך בתחזוקת ענפי אומנות נפרדים.
- ממשקי משתמש: שמור מרקמי UI בזמן ריצה או בפורמטים חדים ללא דחיסה או באטלס מנוע ללא אובדן שנוצר מקבצי מקור PNG ברזולוציה גבוהה.
שאלות נפוצות (FAQ)
שאלה 1. האם מנוע משחק יכול לדגום קובץ PNG ישירות מזיכרון הווידאו?
A1: לא; GPUs אינם יכולים לפרש דחיסת PNG, ולכן מנועים חייבים לפתוח קבצי PNG למפות גולמיות של 32‑ביט בזיכרון לפני העלאה ל‑VRAM.
שאלה 2. למה אמנים טכניים מעדיפים TGA על פני PNG לאריזת מסכות?
A2: TGA מאחסן נתוני ערוץ טהורים, לא דחוסים, ללא דליפה של צבע או סינון שקיפות קצוות הרסני על פני ערוצי RGB ו‑Alpha נפרדים.
שאלה 3. איזה אלגוריתם דחיסת בלוקים עליי להשתמש בתוך מכולת DDS למפות נורמליות?
A3: השתמש ב-BC5 (דחיסה של שני ערוצים במרחב המשיק) למפות נורמל לשמירה על עקמומיות משטח נקייה ללא ארטיפקטים של בלוקים סטנדרטיים של BC1.
שאלה 4. מה עושה את KTX 2.0 לטוב יותר מ‑DDS עבור משחקים חוצי‑פלטפורמות?
A4: KTX 2.0 תומך ב‑Basis Universal, המאפשר לקובץ יחיד לבצע קידוד מחדש בזמן ריצה לפורמטים של BCn למחשבים שולחניים או לפורמטים של ASTC/ETC למובייל בעת ההשקה.
שאלה 5. האם אפייה מוקדמת של mipmaps בקבצי DDS או KTX מגדילה את גודל הדיסק?
A5: כן, כולל שרשראות mipmap מלאות מוסיף כ‑33% יותר נתונים גולמיים לקובץ, אך זה מבטל ברק בזמן ריצה, משפר את מקומיות המטמון, ומגביר את ביצועי הרינדור של ה‑GPU.