সর্বশেষ আপডেট: 21 Sept, 2026

গেম ডেভেলপারদের জন্য ইমেজ ফাইল ফরম্যাট: DDS, TGA, PNG, এবং KTX
গেম ডেভেলপমেন্টে, টেক্সচারগুলি রানটাইম মেমরি ব্যবহার এবং ইনস্টল বিল্ড সাইজের মধ্যে একক বৃহত্তম অংশের দায়িত্বে থাকে। আপনি যদি একটি ইন্ডি স্টাইলাইজড প্ল্যাটফর্মার তৈরি করছেন বা AAA ওপেন-ওয়ার্ল্ড RPG-তে ফটো-রিয়ালিজমের দিকে ধাবিত হচ্ছেন, কীভাবে আপনি টেক্সচার ডেটা সংরক্ষণ, প্রক্রিয়া এবং গ্রহণ করেন তা সরাসরি আপনার ফ্রেম রেট, লোড সময় এবং হার্ডওয়্যার সামঞ্জস্যতা নির্ধারণ করে।
একটি সাধারণ নবীন ভুল হল গেম টেক্সচারকে ওয়েব গ্রাফিক্সের মতো আচরণ করা—ধারণা করা যে ডিস্কে হালকা ফাইল গেম ইঞ্জিনে হালকা পারফরম্যান্সে রূপান্তরিত হয়। GPU জগতে, রানটাইম বাস্তবতা সম্পূর্ণ ভিন্ন।
এই গভীর বিশ্লেষণে, আমরা আধুনিক গেম ডেভেলপমেন্টের চারটি সর্বাধিক গুরুত্বপূর্ণ টেক্সচার এবং ইমেজ ফাইল ফরম্যাট বিশ্লেষণ করব: DDS, TGA, PNG, এবং KTX। আমরা দেখব তারা কীভাবে কাজ করে, অ্যাসেট পাইপলাইনে কোথায় ফিট করে, এবং কখন প্রতিটি ব্যবহার করা উচিত।
সোনার নিয়ম: ডিস্ক স্টোরেজ বনাম ভিডিও RAM (VRAM)
ব্যক্তিগত ফরম্যাট বিশ্লেষণ করার আগে, ডেভেলপারদের ডিস্ক স্টোরেজ কম্প্রেশন এবং GPU হার্ডওয়্যার ব্লক কম্প্রেশন এর মৌলিক পার্থক্যটি বুঝতে হবে।
1. ডিস্ক কম্প্রেশন (PNG, JPEG, WebP)
PNG এর মতো ফরম্যাটগুলি লসলেস এন্ট্রপি এনকোডিং (DEFLATE) ব্যবহার করে। যদিও PNG একটি SSD বা ডাউনলোড সার্ভারে বিশাল পরিমাণ স্থান সাশ্রয় করে, আধুনিক GPU গুলি সরাসরি PNG ফাইল স্যাম্পল করতে পারে না। যখন আপনার গেম ইঞ্জিন একটি PNG লোড করে:
- CPU-কে ফাইলটি ডিকম্প্রেস করে সিস্টেম মেমরিতে কাঁচা, অকম্প্রেসড ৩২-বিট RGBA পিক্সেলে রূপান্তর করতে হবে।
- অকম্প্রেসড বিটম্যাপটি VRAM-এ আপলোড করা হয়।
- একটি 2048×2048 টেক্সচার প্রায় ১৬ এমবি VRAM ব্যবহার করে, ডিস্কে PNG ১ এমবি হোক বা ৩ এমবি, তা নির্বিশেষে।
2. GPU ব্লক কম্প্রেশন (BCn, ASTC, ETC2)
নির্দিষ্ট GPU ফরম্যাটগুলি পিক্সেলের নির্দিষ্ট ব্লক (সাধারণত ৪×৪ পিক্সেল ব্লক)কে ছোট বিট উপস্থাপনে কম্প্রেস করে। গ্রাফিক্স হার্ডওয়্যার এই ব্লকগুলোকে সরাসরি VRAM-এ CPU-সাইড ডিকম্প্রেশন ছাড়াই স্যাম্পল করে:
- শূন্য রানটাইম ডিকম্প্রেশন ওভারহেড সহ সরাসরি VRAM র্যান্ডম অ্যাক্সেস।
- একই 2048×2048 টেক্সচার BC7/ASTC ব্যবহার করে মাত্র প্রায় ৪ এমবি VRAM ব্যবহার করে (৭৫% হ্রাস)।
- মিপম্যাপগুলো সরাসরি কন্টেইনার ফাইলে বেক করা যেতে পারে।
DDS এবং KTX এর মতো কন্টেইনারগুলি বিশেষভাবে এই GPU-নেটিভ ফরম্যাটগুলোকে মোড়ানোর জন্য তৈরি করা হয়েছে, যেখানে PNG এবং TGA পাইপলাইনের পূর্বের পর্যায়ে ভিন্ন ভূমিকা পালন করে।
1. DDS (ডাইরেক্টড্র সর্ফেস)
মাইক্রোসফ্ট দ্বারা DirectX 7 এর সঙ্গে পরিচিত, DirectDraw Surface (.dds) ফরম্যাটটি পিসি, এক্সবক্স এবং কনসোল গেম ডেভেলপমেন্টের জন্য অস্বীকারযোগ্য শিল্পের কাজের ঘোড়া।
প্রযুক্তিগত বৈশিষ্ট্য
- কন্টেইনার টাইপ: নেটিভ GPU টেক্সচার কন্টেইনার।
- সমর্থিত কম্প্রেশন: BC1 through BC7 (Block Compression / DXT family), uncompressed RGBA, float formats (BC6H for HDR).
- মূল সক্ষমতা: Pre-baked mipmaps, cube maps, texture arrays, volume (3D) textures.
ডেভেলপাররা কেন 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 গুলো সাধারণত ডেস্কটপ BC ফরম্যাটের তুলনায় ASTC বা ETC2 পছন্দ করে।
২. TGA (ট্রু ভিশন টার্গা)
১৯৮৪ সালে তৈরি, 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 এক্সপোর্ট প্রদান করে।
অসুবিধা
- বৃহৎ ফাইল সাইজ: গিট/পারফোর্স রিপোজিটরিতে বিশাল স্থান দখল করে এবং বিতরণকৃত টিমে ধীর ডাউনলোড গতি সৃষ্টি করে।
- রানটাইমের জন্য অযোগ্য: কম্প্রেসড ফরম্যাট হিসেবে GPU সরাসরি ব্যবহার করতে পারে না; ইঞ্জিনকে কুক টাইমে রূপান্তর করতে হবে।
৩. PNG (পোর্টেবল নেটওয়ার্ক গ্রাফিক্স)
PNG (.png) হল বিশ্বের সবচেয়ে স্বীকৃত লসলেস ইমেজ ফরম্যাট, যা zlib/DEFLATE কম্প্রেশন ব্যবহার করে সমৃদ্ধ ২৪-বিট এবং ৩২-বিট ইমেজগুলোকে অত্যন্ত ছোট ফাইলে প্যাক করে।
প্রযুক্তিগত বৈশিষ্ট্য
- কন্টেইনার টাইপ: লসলেস অথরিং এবং ডেলিভারি ফরম্যাট।
- বিট গভীরতা: প্রতি চ্যানেলে সর্বোচ্চ ১৬ বিট (৪৮-বিট RGB, ৬৪-বিট RGBA)।
- কম্প্রেশন: লসলেস DEFLATE অ্যালগরিদম।
ডেভেলপাররা কেন PNG ব্যবহার করে
PNG UI সম্পদ, স্প্রাইট, প্রচারমূলক উপকরণ এবং মধ্যবর্তী সোর্স টেক্সচারের প্রধান বিতরণ ফরম্যাট হিসেবে কাজ করে। Unity, Godot, অথবা Unreal Engine-এ তৈরি 2D গেমের জন্য, PNG পরিষ্কার পিক্সেল নির্ভুলতা এবং নিখুঁত ট্রান্সপারেন্সি মাস্ক প্রদান করে।
সুবিধা
- কম্প্যাক্ট রিপোজিটরি ফুটপ্রিন্ট: অকম্প্রেসড TGA-এর তুলনায় প্রকল্প চেকআউট সাইজ উল্লেখযোগ্যভাবে কমায়।
- লসলেস রঙের গুণমান: উচ্চ-কনট্রাস্ট প্রান্ত এবং ভেক্টর-স্টাইল ইলাস্ট্রেশনে শূন্য কম্প্রেশন আর্টিফ্যাক্ট।
- নেটিভ আলফা ট্রান্সপারেন্সি: জটিল স্বচ্ছ UI উপাদান এবং পার্টিকল শিটের জন্য পরিষ্কার ৮-বিট আলফা চ্যানেল সমর্থন।
অসুবিধা
- হেভি CPU ডিকোডিং: রানটাইমে বড় PNG ডিকমপ্রেস করা ফ্রেম রেট ধীর করে এবং GPU আপলোডের আগে মেমরি ব্যবহার বাড়িয়ে দেয়।
- প্রিমাল্টিপ্লায়েড আলফা গটচা: কিছু ইমেজ এডিটর সম্পূর্ণ স্বচ্ছ পিক্সেলে RGB ডেটা বাদ দেয়, যা টেক্সচার ব্লিডিং নষ্ট করে এবং স্প্রাইটের চারপাশে গাঢ় আউটলাইন তৈরি করে।
- শূন্য VRAM সঞ্চয়: GPU-র ভিতরে পূর্ণ ৩২-বিট র’ মেমোরিতে ডিকমপ্রেস করে, যদি ইঞ্জিনের টেক্সচার কুকার দ্বারা গ্রহণ না করা হয়।
৪. 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 যে ব্লক ফরম্যাট পছন্দ করে তাতে ট্রান্সকোড করে (যেমন, GeForce RTX-এ BC7, iPhone-এ ASTC, পুরনো Android ডিভাইসে ETC2)।
- সুপারকমপ্রেশন (Zstandard) ডিস্কে JPEG-এর চেয়ে ছোট ফাইল তৈরি করে, যা মিলিসেকেন্ডে নেটিভ VRAM ব্লকে ট্রান্সকোড হয়।
সুবিধা
- সত্যিকারের ক্রস-প্ল্যাটফর্ম স্ট্যান্ডার্ড: Vulkan, WebGL, WebGPU এবং মোবাইল ডিভাইসে নির্বিঘ্নে চলে।
- বেসিস ইউনিভার্সাল ট্রান্সকোডিং: একক অ্যাসেট বিল্ড ডেস্কটপ, মোবাইল এবং ব্রাউজারকে লক্ষ্য করে, টেক্সচার এক্সপোর্টের ডুপ্লিকেশন ছাড়া।
- প্রথম-শ্রেণীর glTF সঙ্গী: আধুনিক 3D ওয়েব অভিজ্ঞতা, মেটাভার্স ইঞ্জিন এবং ওপেন রেন্ডারিং পাইপলাইনের জন্য অপরিহার্য।
অসুবিধা
- পাইপলাইন টুলিং পরিপক্কতা: আধুনিক বিল্ড চেইন প্রয়োজন (যেমন KTX-Software স্যুটের
toktx); পুরনো প্রোপ্রাইটারি ইঞ্জিনগুলোতে আউট-অফ-দ্য-বক্স ইন্টিগ্রেশন নাও থাকতে পারে। - ট্রান্সকোডার ওভারহেড: সামান্য রানটাইম ট্রান্সকোড লেটেন্সি (যদিও পূর্ণ PNG সফটওয়্যার ডিকোডিংয়ের তুলনায় বহু গুণ দ্রুত)।
হেড-টু-হেড তুলনা
| ফিচার / মানদণ্ড | DDS | TGA | PNG | KTX / KTX 2.0 |
|---|---|---|---|---|
| প্রাথমিক ব্যবহার ক্ষেত্র | PC/কনসোল রানটাইম | সোর্স অটরিং ও মাস্কস | ২ডি স্প্রাইটস ও সোর্স আর্ট | ক্রস-প্ল্যাটফর্ম ও ওয়েব রানটাইম |
| ডাইরেক্ট GPU স্যাম্পলিং | হ্যাঁ (নেটিভ) | না | না | হ্যাঁ (নেটিভ বা ট্রান্সকোডেড) |
| VRAM কম্প্রেশন | হ্যাঁ (BC1–BC7) | না (অসংকুচিত) | না (অসংকুচিত) | হ্যাঁ (ASTC, BCn, Basis) |
| প্রি-বেকড মিপম্যাপস | হ্যাঁ | না | না | হ্যাঁ |
| ডিস্ক সাইজ | মাঝারি | খুব উচ্চ | ছোট | অত্যন্ত ছোট (Basis + Zstandard) |
| ইকোসিস্টেম | DirectX / ডেস্কটপ ইঞ্জিনস | DCC সফটওয়্যার / সোর্স পাইপলাইনস | ইউনিভার্সাল ওয়েব ও ২ডি ইঞ্জিন | 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 ফরম্যাটে মাস্টার ফাইল এবং চ্যানেল-প্যাকড ডেটা সংরক্ষণ করুন যাতে রঙের তথ্য ক্ষতিগ্রস্ত না হয়।
- পিসি ও কনসোল বিল্ডস: আপনার সোর্স টেক্সচারগুলোকে DDS ফাইলে রূপান্তর করুন, যেখানে উচ্চ-ডিটেইল আলবেডো/নরমাল ম্যাপের জন্য BC7 এবং একক ও দ্বি-চ্যানেল মাস্কের জন্য BC4/BC5 ব্যবহার করা হবে।
- ক্রস-প্ল্যাটফর্ম, ওয়েব ও মোবাইল বিল্ডস: রানটাইম 3D অ্যাসেটগুলোকে KTX 2.0-এ প্যাকেজ করুন যাতে অ্যান্ড্রয়েড, iOS এবং WebGPU-তে ইউনিভার্সাল ট্রান্সকোডিং ব্যবহার করা যায় এবং আলাদা আর্ট ব্রাঞ্চ বজায় রাখতে না হয়।
- ইউজার ইন্টারফেস: রানটাইম UI টেক্সচারগুলোকে হয় তীক্ষ্ণ অকম্প্রেসড ফরম্যাটে অথবা উচ্চ-রেজোলিউশনের PNG সোর্স ফাইল থেকে প্রাপ্ত লসলেস ইঞ্জিন এটলাসে রাখুন।
প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)
প্রশ্ন ১। একটি গেম ইঞ্জিন কি ভিডিও মেমরি থেকে সরাসরি PNG স্যাম্পল করতে পারে?
A1: না; GPU-গুলি PNG কম্প্রেশন পার্স করতে পারে না, তাই ইঞ্জিনগুলোকে PNG ফাইলগুলোকে মেমরিতে কাঁচা ৩২-বিট বিটম্যাপে ডিকম্প্রেস করতে হয় VRAM-এ আপলোড করার আগে।
প্রশ্ন ২। মাস্ক প্যাকিংয়ের জন্য টেকনিক্যাল আর্টিস্টরা কেন PNG এর তুলনায় TGA পছন্দ করেন?
A2: TGA শুদ্ধ, অসংকুচিত চ্যানেল ডেটা সংরক্ষণ করে, রঙের লিকেজ বা ধ্বংসাত্মক এজ ট্রান্সপারেন্সি ফিল্টারিং ছাড়া, পৃথক RGB এবং আলফা চ্যানেলগুলিতে।
প্রশ্ন ৩। নরমাল ম্যাপের জন্য DDS কন্টেইনারের ভিতরে কোন ব্লক কম্প্রেশন অ্যালগরিদম ব্যবহার করা উচিত?
A3: নরমাল ম্যাপের জন্য BC5 (দুটি-চ্যানেল ট্যানজেন্ট-স্পেস কম্প্রেশন) ব্যবহার করুন, যাতে স্ট্যান্ডার্ড BC1 ব্লক আর্টিফ্যাক্ট ছাড়া পরিষ্কার পৃষ্ঠের বক্রতা বজায় থাকে।
প্রশ্ন ৪। ক্রস-প্ল্যাটফর্ম গেমের জন্য KTX 2.0 কে DDS এর চেয়ে ভালো করে কী?
A4: KTX 2.0 Basis Universal সমর্থন করে, যা একক ফাইলকে চালু করার সময় ডেস্কটপ BCn ফরম্যাট বা মোবাইল ASTC/ETC ফরম্যাটে রিয়েল-টাইম ট্রান্সকোড করতে দেয়।
প্রশ্ন ৫। DDS বা KTX ফাইলে প্রি-বেকিং মিপম্যাপস ডিস্ক সাইজ বাড়ায় কি না?
A5: হ্যাঁ, পূর্ণ মিপম্যাপ চেইন অন্তর্ভুক্ত করলে ফাইলে প্রায় ৩৩% বেশি র’ ডেটা যোগ হয়, তবে এটি রানটাইম শিমারিং দূর করে, ক্যাশ লোকালিটি উন্নত করে, এবং GPU রেন্ডারিং পারফরম্যান্স বাড়ায়।