কোন চিত্রের ফর্ম্যাট মেমরি বাঁচাতে আরও দক্ষ? পিএনজি, জেপিইজি, বা জিআইএফ?
কোন চিত্রের ফর্ম্যাট মেমরি বাঁচাতে আরও দক্ষ? পিএনজি, জেপিইজি, বা জিআইএফ?
উত্তর:
"মেমোরি" এবং "দক্ষতা" সাধারণত পদগুলির অপব্যবহার করা হয়, তাই আমি আপনাকে চারটি ভিন্ন উপাদানের জন্য একটি উত্তর দেব যা আপনার গেমটির কার্য সম্পাদনকে প্রভাবিত করতে পারে।
আমি এটিকে সংক্ষিপ্ত এবং সংক্ষিপ্ত রাখার জন্য অনেকগুলি বিষয়কে ওভারস্পিম্প্লাইফিং করব, তবে নীচে এই পাঠ্যে প্রচুর ভুলত্রুটি রয়েছে, তাই এটি একটি চিমটি নুন দিয়ে নিন। তবে মূল ধারণাগুলি বোধগম্য হওয়া উচিত।
সংগ্রহস্থল
আপনার চিত্রগুলি আপনার সফ্টওয়্যার বিতরণে এটি আকার নেয় size আপনার সংস্থানগুলি যত বেশি জায়গা ব্যবহার করবে তত বেশি ডাউনলোড (আপনার ওয়েবসাইট থেকে যেমন হবে) তত বেশি হবে। আপনি যদি শারীরিক মিডিয়ায় যেমন সিডি বা ডিভিডি বিতরণ করছেন তবে আপনাকে সম্ভবত এই ফ্রন্টে কিছু গুরুতর অপ্টিমাইজেশন করতে হবে।
সাধারণভাবে, জেপিইজি কোনও তীক্ষ্ণ সীমানা ছাড়াই ফটোগ্রাফ এবং চিত্রগুলির জন্য সেরাকে সংকুচিত করে। তবে আপনার চিত্রগুলির গুণমান হ্রাস পাবে কারণ জেপিইজি ক্ষতিকারক সংকোচনের ব্যবহার করে (আপনি জেপিইজি হিসাবে চিত্র রফতানির সময় সংকোচনের স্তর / অবক্ষয়কে সূক্ষ্ম করতে পারেন this এ সম্পর্কে আরও তথ্যের জন্য আপনার ইমেজিং সফ্টওয়্যারটির ডকুমেন্টেশন দেখুন)।
তবে, জেপিজি যতটা ভাল হোক, এটি স্বচ্ছতা সমর্থন করে না । আপনি যদি অন্যের মাধ্যমে প্রদর্শিত চিত্রগুলি রাখতে চান বা যদি আপনি অনিয়মিত আকারের চিত্র চান তবে এটি অত্যন্ত গুরুত্বপূর্ণ। জিআইএফ একটি ভাল পছন্দ, তবে এটি পিএনজি দ্বারা বেশিরভাগ ক্ষেত্রে ছাড়িয়ে গেছে (জিআইএফ সমর্থন করে যে কয়েকটি জিনিস পিএনজি সমর্থন করে না, তবে তারা গেম প্রোগ্রামিংয়ে বেশিরভাগ ক্ষেত্রে অপ্রাসঙ্গিক)।
পিএনজি স্বচ্ছতা (এবং সেমিট্রান্সপারেন্সি) সমর্থন করে, গুণমানের অবক্ষয় ছাড়াই ডেটা সংকোচিত করে (যেমন এটি লসলেস সংকোচন ব্যবহার করে), এবং মোটামুটিভাবে কমপ্রেস করে, তবে জেপিজির মতো নয়।
সমস্যাটি যখন আপনার ভাল সংকোচনের পাশাপাশি স্বচ্ছতার প্রয়োজন হয় তখন দেখা দেয়। আপনি সামান্য নিকৃষ্ট চিত্র কিছু মনে না করেন, তাহলে আপনি যেমন পিএনজি quantization প্রোগ্রাম ব্যবহার করতে পারেন pngquant , যা আপনি অনলাইনে পরীক্ষা করতে পারেন TinyPNG । মনে রাখবেন যে নিজের আকারে কোয়ান্টাইজেশন দ্বারা সম্পাদিত চিত্রের অবক্ষয় জেপিইগির চেয়ে পৃথক (যাতে কোয়ান্টাইজেশনের পাশাপাশি অন্যান্য আক্রমণাত্মক কৌশলও অন্তর্ভুক্ত), তাই বিভিন্ন সেটিংসের মাধ্যমে উভয়ই চেষ্টা করে দেখতে ভুলবেন না।
আপনি যদি আপনার বিতরণ আকারটি আগ্রাসীভাবে ছোট করতে চান তবে আপনি প্রতিটি চিত্রটিকে ম্যানুয়ালি এইভাবে প্রক্রিয়া করতে পারেন:
if the image has transparency then
try pngquant on the image
if the results are not satisfactory then
revert to the non-quantized image
end
store as PNG
else
try storing it as JPG with different quality settings
if no single setting yields an image of an acceptable quality then
try pngquant on the image
if the results are not satisfactory then
revert to the non-quantized image
end
store as PNG
else
store as JPG
end
end
পরামর্শ: কিছু চিত্র এক ফর্ম্যাটে সংরক্ষণ করা ঠিক আছে, এবং অন্যগুলি অন্য ফর্ম্যাটে।
ডিএক্সটি, ইটিসি এবং পিভিআরটিসি এর মতো অন্যান্য বিশেষায়িত ফর্ম্যাট রয়েছে। তারা সংকোচন সমর্থন করে, এবং মেমোরিতে সংক্ষেপিত লোডও করা যায়, তবে এগুলি কেবলমাত্র নির্দিষ্ট জিপিইউ দ্বারা সমর্থিত হয় এবং এই জিপিইউগুলির বেশিরভাগই কেবল তার মধ্যে একটিকে সমর্থন করে, যদি না আপনি আপনার টার্গেট হার্ডওয়্যারটির সঠিক হার্ডওয়্যার স্পেসিফিকেশনগুলি না জানেন (একটি উল্লেখযোগ্য কেসটি হ'ল আইফোন / আইপ্যাড, যা পিভিআরটিসি টেক্সচার সমর্থন করে), আপনার এই ফর্ম্যাটগুলি এড়ানো উচিত।
প্রোগ্রাম স্মৃতি
আমি এটি এখানে অন্তর্ভুক্ত করেছি, কারণ এটি যা সাধারণত "স্মৃতি" দ্বারা পরিচিত। তবে, যদি আপনার গেমটি গ্রাফিক্স ত্বরণ ব্যবহার করে (এবং আপনি যদি 1998 এর পরে কোনও গেম তৈরি করেন তবে সম্ভবত আপনি হচ্ছেন), তবে মেমরিটি কেবলমাত্র আপনার টেক্সচারের বর্ণনাকারী (চিত্র প্রতি কয়েক বাইট) ব্যবহার করবে যা কেবলমাত্র চিত্রগুলির পরিমাণ দ্বারা প্রভাবিত , এবং তাদের আকার বা বিন্যাস নয় (এটিতে কয়েকটি ক্যাভেট রয়েছে তবে বেশিরভাগ ক্ষেত্রে অপ্রাসঙ্গিক)।
যদি আপনার প্ল্যাটফর্মটিতে ডেডিকেটেড ভিডিও মেমরি না থাকে, হার্ডওয়্যারটি ত্বরান্বিত না হয়, বা অন্য কোনও অস্বাভাবিক ঘটনা না ঘটে তবে ভিআরএএম সম্পর্কিত পরবর্তী বিভাগটি সম্পূর্ণ বা আংশিকভাবে র্যামে ঘটবে, তবে মূল নীতিগুলি একই হবে।
ভিডিও স্মৃতি
আপনার প্রোগ্রামটি একবার চলার পরে আপনার চিত্রগুলি এখানে সংরক্ষণ করা হবে। সাধারণভাবে, আপনি যে বিন্যাসে সেগুলি সংরক্ষণ করেছেন তা এখানে কোনও পার্থক্য করবে না, কারণ সমস্ত চিত্রগুলি ভিডিও মেমোরিতে লোড করার আগে সেগুলি সঙ্কুচিত করা হয়।
এখন, আপনার চিত্রগুলি গ্রাহক করা ভিআরএ্যাম মোটামুটি ভিআরএমে লোড হওয়া width * height * bitdepth
প্রতিটি চিত্রের জন্য হবে । এখানে কয়েকটি বিষয় লক্ষণীয়:
আপনার চিত্রগুলি যে চিত্রের প্রস্থ এবং উচ্চতায় ভিআরএমে সংরক্ষিত রয়েছে তা অবশ্যই আপনার মূল চিত্রের সাথে মেলে না। কিছু জিপিইউ কেবলমাত্র 2 টি আকারের মাপের সাথে টেক্সচারগুলি পরিচালনা করতে পারে, তাই আপনার 320x240 চিত্রটি অব্যবহৃত স্মৃতি কার্যকরভাবে নষ্ট হয়ে গেলে ভিআরএমে একটি 512x256 স্পেসে প্রকৃতপক্ষে সংরক্ষণ করা যেতে পারে। কিছু সময় আপনাকে এমন মাপের সাহায্যে টেক্সচার লোড করারও অনুমতি দেওয়া হয় না যা 2 এর পাওয়ার নয় (যেমন GLES 1.1 তে থাকে)।
সুতরাং আপনি যদি ভিআরএএম ব্যবহারটি হ্রাস করতে চান তবে আপনি নিজের চিত্রগুলি আটলাইং করে এবং ২ টির ক্ষমতার সাথে এগুলি আকার দেওয়ার বিষয়ে বিবেচনা করতে চাইতে পারেন , যা রেন্ডারিংয়ের সময় কম রেন্ডার রাষ্ট্র পরিবর্তনগুলিরও সুবিধা পাবে। এই সম্পর্কে আরও পরে।
বিটডেপথ খুব গুরুত্বপূর্ণ। সাধারণত টেক্সচারগুলি 32-বিট এআরজিবি বা 32-বিট এক্সআরজিবিতে ভিআরএমে লোড করা হয়, তবে যদি আপনার হার্ডওয়্যারটি 16-বিট গভীরতা সমর্থন করতে পারে এবং আপনি যদি কম বিটডেপথ না পেয়ে আপত্তি করেন তবে আপনি প্রতিটি চিত্রের দ্বারা অর্ধেক পরিমাণ ভিআরএএম খরচ করতে পারবেন , যা বিবেচনা আকর্ষণীয় কিছু হতে পারে।
তবে আপনি যা করেন না কেন আপনার গেমটি কতটা ভিআরএএম ব্যবহার করে তা বিবেচনা করার সময় সবচেয়ে গুরুত্বপূর্ণ বিষয়টি হ'ল কোনও নির্দিষ্ট সময়ে আপনি ভিআরএমে থাকা চিত্রের পরিমাণ । আপনি যদি একটি ভাল পারফরম্যান্স গেম চান তবে এটি সম্ভবত আপনি যতটা সম্ভব কম রাখতে চান। ভিআরএমে টেক্সচার লোড এবং আনলোড করা ব্যয়বহুল, সুতরাং আপনি যখনই প্রতিটি চিত্র ব্যবহার করতে যাচ্ছেন ঠিক তখনই আপনি লোড করতে পারবেন না। আপনি সম্ভবত যে চিত্রগুলি ব্যবহার করবেন সেগুলি প্রিললোড করার মধ্যে আপনার অবশ্যই একটি ভারসাম্য খুঁজে পাওয়া উচিত এবং যখন আপনি নিশ্চিত হন যে আপনি সেগুলি আর ব্যবহার করবেন না তখন এগুলি আনলোড করুন। এই অধিকারটি করা তুচ্ছ নয় এবং আপনাকে আপনার নির্দিষ্ট গেমের জন্য নিজের কৌশল সম্পর্কে ভাবতে হবে।
কার্যকর করার গতি
"মেমরি" না হলেও এটি গেমসের পারফরম্যান্সের সাথে খুব সম্পর্কিত। চিত্র অঙ্কন ব্যয়বহুল, এবং আপনি নিশ্চিত করতে চান যে আপনার রেন্ডারিং যত দ্রুত সম্ভব চলমান। অবশ্যই, এখানে, ফর্ম্যাটটি কোনও ব্যাপার নয়, তবে অন্যান্য জিনিসগুলি করুন:
চিত্রের আকার (আসলে এটি "নমুনা আকার" হবে): আপনি যে চিত্রটি আঁকতে চলেছেন তার বৃহত্তম অঞ্চল, এটি আঁকতে আরও বেশি সময় লাগবে। স্ক্রিনের একটি ছোট অংশে একটি বিশাল চিত্র রেন্ডারিং খুব কার্যকর নয়, সুতরাং মাইপম্যাপিং নামে একটি কৌশল রয়েছে যা রেন্ডারিং গতির জন্য ভিআরএএম- এর ব্যবসায়ের সমন্বিত থাকে, বিভিন্ন চিত্রগুলিতে বেশ কয়েকটি বার আপনার চিত্রগুলি সঞ্চয় করে এবং সবচেয়ে ছোট চিত্রটি দিয়ে দেয় যা দিতে পারে আপনি যে কোনও সময় প্রয়োজনীয় মানের। চিত্রগুলি লোড হওয়ার সাথে সাথে ম্যাপম্যাপিং করা যেতে পারে, যা লোডিং গতি এবং ভিআরএএম ব্যবহারের উপর প্রভাব ফেলবে, বা প্রিপ্রোসেসিংয়ে (একই চিত্রের বিভিন্ন সংস্করণে ম্যানুয়ালি স্টোর করে, বা ডিডিএসের মতো স্থানীয়ভাবে মাইপম্যাপিং সমর্থন করে এমন ফর্ম্যাট ব্যবহার করে) যা স্টোরেজকে প্রভাবিত করবে এবং ভিআরএএম ব্যবহার, তবে লোডিং গতির উপর খুব কম প্রভাব ফেলবে।
রাজ্যের পরিবর্তনগুলি রেন্ডার করুন। আপনি সম্ভবত একই সাথে পর্দায় বিভিন্ন আলাদা চিত্র আঁকতে চাইবেন। তবে, জিপিইউ যে কোনও সময় কেবলমাত্র একক উত্স চিত্র ব্যবহার করতে পারে (এটি সত্য নয়, তবে দয়া করে এখানে আমার সাথে রাখুন)। রেন্ডারিংয়ের জন্য বর্তমানে ব্যবহৃত চিত্রটি অনেক রেন্ডার রাজ্যের মধ্যে একটি এবং এটি ব্যয়বহুল। সুতরাং আপনি যদি একই চিত্রটি বেশ কয়েকবার ব্যবহার করতে যাচ্ছেন (মনে রাখবেন কখন আমি টেক্সচার অ্যাটলাসগুলি উল্লেখ করেছি ?), আপনি রেন্ডার অবস্থা পরিবর্তন করার আগে কোনও চিত্রকে যতটা ব্যবহার করতে পারেন এবং পুনরায় ব্যবহার শুরু করলে আপনি একটি বিশাল পারফরম্যান্স লাভ লক্ষ্য করবেন will বিভিন্ন চিত্র (এগুলি ছাড়াও অন্যান্য রেন্ডার রাজ্যগুলি রয়েছে, এবং রাষ্ট্রের পরিবর্তনগুলি রেন্ডার করতে আপনি আপনার স্টাফ আঁকেন এমন ক্রমটি ঠিকঠাক করা কোনও গেমের পারফরম্যান্সকে বাড়ানোর সময় খুব সাধারণ ক্রিয়াকলাপ হয়)
তবে চিত্র ব্যবহারের অপ্টিমাইজেশন একটি অত্যন্ত জটিল বিষয় এবং আমি এখানে যা লিখেছি তা একটি গেম লেখার সময় আপনাকে বিবেচনা করতে হবে এমন কয়েকটি কারণগুলির একটি খুব বিস্তৃত এবং ওভারসিম্প্লিফাইভড ওভারভিউ, সুতরাং আমার মনে হয় আপনি এটিকে সহজ রাখলে অবশ্যই এটাই সেরা, এবং যখনই আপনার সত্যিই এটি করা দরকার কেবলমাত্র অনুকূলিত করুন। বেশিরভাগ সময়, অকালে অপ্টিমাইজ করা অপ্রয়োজনীয় (এবং কখনও কখনও ক্ষতিকারকও) তাই সহজেই নিন।
setEnforcePotImages
, এটি ওপেনগ্লেস 1.0 এর জন্য 2 আকারের টেক্সচারের পাওয়ার প্রয়োগ করতে অক্ষম করে। এটি কোনও ভাল ধারণা নয়, কারণ সমস্ত হার্ডওয়্যার 2-নন-পাওয়ার-টেক্সচারকে সমর্থন করে না। ওপেনজিএলএস ২.০-এর নন-পাওয়ার-অফ টেক্সচারের জন্য সমর্থন প্রয়োজন, সুতরাং আপনি যদি ২.০ লক্ষ্য করে থাকেন তবে আপনি যে কোনও আকারের টেক্সচার ব্যবহার করতে পারেন। আরও তথ্যের জন্য libgdx ডকুমেন্টেশন পড়ুন।
একবার কোনও চিত্র ডিস্ক থেকে লোড হয়ে যায় এবং রেন্ডারিংয়ের জন্য ফর্ম্যাট করা হয়, এটি পিএনজি, জেপিইজি, বা জিআইএফ ব্যবহার করে সেই চিত্রটি ডিস্কে সংরক্ষণ করা হয়েছিল কিনা তা বিবেচনা না করে সমান পরিমাণ মেমরি ব্যবহার করবে।
থাম্বের সাধারণ নিয়ম: জেপিইজি একটি ক্ষতির ফর্ম্যাট, এবং ডিস্কে ছবিটি আরও ছোট করার জন্য চিত্রের মানকে হ্রাস করবে। অন্যদিকে, পিএনজি হ'ল একটি চিত্রবিহীন চিত্র বিন্যাস, এবং এর ফলে সাধারণত ডিস্কে বড় আকারের ফাইল আকারের ফলস্বরূপ। জিআইএফ প্রযুক্তিগতভাবেও একটি ক্ষতিহীন ফর্ম্যাট, তবে কেবল প্রতি চিত্রে সর্বাধিক 256 টি রঙ সমর্থন করে এবং তাই একটি জিআইএফ হিসাবে সংরক্ষণ করা হলে একটি উচ্চ-বর্ণের চিত্রটি প্রায়শই একটি ভারী গুণমানের ক্ষতি করতে পারে।
যদিও এটি কেবল তাদের অন ডিস্ক উপস্থাপনার জন্য। মেমোরিতে, তারা উভয়ই একই টেক্সচার ফর্ম্যাটে প্রসারিত হবে, আপনি তাদের পিএনজি, বা জেপিজি, বা জিআইএফ হিসাবে ডিস্কে সংরক্ষণ করেছেন কিনা তা নির্বিশেষে একই পরিমাণ মেমরি ব্যবহার করে।
এটা নির্ভর করে.
ফটোগ্রাফের জন্য জেপিগ সবচেয়ে দক্ষ। এটি ক্ষতিহীন নয়, তবে সংক্ষেপণ দ্বারা প্রবর্তিত শিল্পকর্মগুলি এই ব্যবহারের ক্ষেত্রে কমপক্ষে দৃশ্যমান।
তীক্ষ্ণ রেখা এবং কয়েকটি রঙ সহ পিক্সেল আর্টের জন্য পিএনজি হ্রাসহীন এবং সবচেয়ে দক্ষ। এটি আলফা স্বচ্ছতা সমর্থন করে।
জিএনএফ অ্যানিমেশনগুলি সঞ্চয় করার ক্ষমতা ব্যতীত পিএনজি আরও ভাল কিছু করতে পারে না। তবে এটি কেবল ওয়েব অ্যাপ্লিকেশনগুলির প্রসঙ্গে প্রাসঙ্গিক। গেম বিকাশে আপনি সাধারণত স্প্রিটশিট ব্যবহার করে অ্যানিমেশন তৈরি করেন।
মনে রাখবেন আপনি যখন Libgdx এর মতো কোনও গ্রাফিক ইঞ্জিন ব্যবহার করেন তখন এটি সম্ভবত লোড করার পরে চিত্রগুলি সঙ্কুচিত করে এবং পরে তাকে সঙ্কুচিত আরজিবিএ মান হিসাবে মেমোরিতে রাখে। সুতরাং চিত্রের ফর্ম্যাটটি কেবল লোডিং গতির জন্য গুরুত্বপূর্ণ এবং এতে ড্রাইভের স্থান ছিল (বা আপনি যখন নেট থেকে প্রেরণ করবেন তখন ব্যান্ডউইথ ব্যবহার)।
আমি libgdx সম্পর্কে খুব বেশি জানি না, তবে চিত্রের ফর্ম্যাট এবং গ্রাফিক্স সম্পর্কে:
রিয়েল ওয়ার্ল্ড ফোটোগুলির ক্ষেত্রে জেপিইজি খুব ভাল। এগুলি ক্ষতিকারক তবে আপনি স্পষ্ট রঙিন স্পেসগুলির সাথে ধারালো প্রান্তের ছবি না তুললে আপনি ফটোতে নিদর্শনগুলি দেখতে পাবেন না যেমন উদাহরণস্বরূপ লিখিত পাঠ্য বা কমিকস। বড় ব্যাকগ্রাউন্ড গ্রাফিক্সের জন্য এগুলি ব্যবহার করুন।
জিআইএফ অপ্রচলিত, এটি সম্পূর্ণ স্বচ্ছতার জন্য একটি নিবেদিত রঙের সাথে প্যালেটযুক্ত রঙগুলি (পিক্সেল প্রতি 8 বিট পর্যন্ত) সঞ্চয় করতে পারে। এটি ফ্রেমের উপর ভিত্তি করে ছোট অ্যানিমেশনগুলিকে অনুমতি দেয়। একবার এর প্যাকিং অ্যালগরিদমের পেটেন্ট ছিল যাতে এটি আইনীভাবে সর্বত্র ব্যবহার করা যায় না। সেই পেটেন্টের কারণে, পিএনজি বিকশিত হয়েছিল।
পিএনজি কম-বেশি এমন একটি জিপযুক্ত বিটম্যাপ যা আরজিবি + আলফা (32 বিট অবধি) এবং অন্যান্য পিক্সেল ফর্ম্যাটগুলি সঞ্চয় করতে পারে। এটি সেই চিত্রের ছোট অংশগুলির গতি-আনজিপিংয়ের জন্য বিশেষী, যা খুব ছোট এবং ধীর ডিভাইসের জন্য সুবিধাজনক (যেমন 10 বছরের পুরনো সেলফোন), তবে আজকের লাইব্রেরিগুলি লোড হয়ে গেলে কেবল বিটম্যাপে আনপ্যাক করে।
পিএনজি আকার এবং গতি এবং বৈশিষ্ট্যগুলিতে জিআইএফের চেয়ে ভাল তবে আপনি যদি বিটম্যাপগুলি দক্ষতার সাথে সঞ্চয় করতে চান তবে আমি পরামর্শ দেব: .PNM.BZ2 ([সম্পাদনা] বিভিন্ন প্যাকিং পদ্ধতির কারণে, .PNM.BZ2 সবসময় বেশি কার্যকর হয় না .PNG। [/ সম্পাদনা] এর চেয়ে)
পিএনএম / পিবিএম / পিজিএম / পিএএম সরল পাঠ্যে KISS- শিরোনাম সহ বিটম্যাপ ফর্ম্যাট। এগুলিতে জিজিপ ব্যবহারের ফলে পিএনজির মতো ফাইল আকারের ফলস্বরূপ ফলস্বরূপ ফলাফল পাওয়া যায়, তাই এর জন্য বিজিপ 2 আরও ভাল সমাধান। আপনি যদি আপনার প্রোগ্রামে অভ্যন্তরীণভাবে বিটম্যাপ ব্যবহার করতে চলেছেন তবে আপনি .zar বা .zip ধারক মধ্যে bzip2 সংক্ষিপ্ত বিটম্যাপ ব্যবহার করতে চাইতে পারেন। আপনার কাছে বিজিপ 2 না থাকলে জিপ পাত্রে পিএনএম ব্যবহার করা (সর্বাধিক সংক্ষেপণের সাথে জিপ) পিএনজি ব্যবহারের অনুরূপ হতে পারে। - সুতরাং, একটি জিপ ফাইলে পিএনজি সঞ্চয় করতে কেবল সামান্য বা কোনও সুবিধা থাকতে পারে - এটি সম্ভবত চিত্রটি লোড করার সময় বাড়িয়ে তুলবে।
তদ্ব্যতীত, এক বিটম্যাপে বেশ কয়েকটি ছোট স্প্রিট / ছবি সংরক্ষণ করা ভাল পছন্দ, বিশেষত যখন আপনার একই পরিস্থিতিতে একইসাথে সমস্ত প্রয়োজন হয়।
স্টোরেজ ফর্ম্যাট হিসাবে জেপিইজি সম্ভবত ঘাস বা দেয়ালের মতো কিছু টেক্সচারের জন্য সেরা পছন্দ, যেখানে তথ্যের ক্ষতি সম্ভবত অন্বেষণযোগ্য। পিএনজি অনুসরণ করুন যখন আপনার স্বচ্ছতার প্রয়োজন হবে বা যখন আপনি তথ্য ক্ষতির সাথে অর্থ প্রদান করতে পারবেন না, উদাহরণস্বরূপ 2 ডি গেমের স্প্রাইটস (প্লেয়ার, শত্রু, একটি ট্রেজারি বুক), আপনি সম্ভবত সেই চিত্রগুলির জন্য পিএনজি ব্যবহার করতে চান।
মেমরির ব্যয় সম্পর্কে কথা বলার সময়, ফাইল সিস্টেমে গেম গ্রাফিকগুলি সংরক্ষণ করতে ব্যবহৃত ফর্ম্যাটটি মোটেই প্রাসঙ্গিক নয়। হয় যদি আপনি ভিআরএএম, বা র্যাম (সফ্টওয়্যার রেন্ডারার) এ পিক্সেল বাফারগুলি সঞ্চয় করেন তবে আপনি সম্ভবত সেগুলি সঙ্কুচিতভাবে সংরক্ষণ করেছেন, কারণ গেমগুলি প্রতিটি পিক্সেল বাফার দ্বারা ব্যবহৃত পিক্সেল বনাম মেমরির দ্রুত পড়ার পক্ষে।
স্মৃতিতে সঞ্চিত সংকোচিত ডেটাগুলির কোনও বুদ্ধি নেই, কেবল আপনি ডিস্কের পঠনগুলি সংরক্ষণ করার জন্য কিছু ধরণের ক্যাশে বজায় রাখেন তবে আপনার খেলায় একটি নির্দিষ্ট সময় ব্যবহারের জন্য চিত্রগুলি ব্যবহারের জন্য আপনাকে সম্ভবত সেই ক্যাশে থেকে কোনও সঙ্কুচিত অবস্থায় পড়তে হবে।
দ্রুত হার্ডওয়্যার ডিকোডিং করা সম্ভব হলে সংকুচিত চিত্রের ডেটা কিছুটা বেশি বোধগম্য হয়। কমপক্ষে সাধারণ ম্যাপিংয়ের জন্য আমার এই http://en.wikedia.org/wiki/3Dc মনে আছে । এটির সাহায্যে আপনি কিছু ভিআরএএম সংরক্ষণ করতে পারেন। আমি এখনও হার্ডওয়্যার ডিকোডিংয়ের অন্যান্য উদাহরণগুলি সম্পর্কে অবগত নই।
পুনঃসূচনা: আপনার গেমের জন্য অবিচ্ছিন্ন স্টোরেজে গ্রাফিক্স সংরক্ষণের জন্য যে ফর্ম্যাটগুলি ব্যবহার করা হোক না কেন, আপনাকে এটি ডিকোড করতে হবে এবং গতিশীল মেমরি, ভিডিও মেমরি বা উভয় ক্ষেত্রেই একটি সঙ্কোচিত সংস্করণ বজায় রাখতে হবে, প্রয়োজনে দ্রুত রেন্ডার করতে সক্ষম হতে হবে।
পরিশেষে: আমি একটি ডেস্কটপ লোক। যখন আমি "স্মৃতি" বলি আমি সর্বদা গতিশীল মেমরির উল্লেখ করি। আমি যখন "ডিস্ক", "ফাইল সিস্টেম" বা "ধ্রুবক স্টোরেজ" বলি তখন আমি সর্বদা আপনার ডিভাইস অবিরাম স্টোরেজ হিসাবে যা ব্যবহার করি তা উল্লেখ করি, সাধারণত আমি হার্ড ডিস্কে ভাবি। আপনি যখন "স্মৃতিশক্তি-দক্ষতা" বলেছেন তখন আমি এটিকে "গতিশীল মেমরির" জন্য "ধ্রুবক স্টোরেজ" নয় took ইদানীং, আমি প্রচুর লোককে "ধ্রুবক স্টোরেজ" (সম্ভবত এটি মোবাইল ডিভাইসের পরিভাষা?) বোঝাতে "মেমরি" শব্দটি ব্যবহার করে দেখছি।