টেক্সচার

আপনার অ্যান্ড্রয়েড গেমে টেক্সচারের চেহারা এবং পারফরম্যান্স অপ্টিমাইজ করতে এই সেরা অনুশীলনগুলি অনুসরণ করুন৷

টেক্সচার আপনার 3D শিল্পের একটি মূল উপাদান। 3D গেমগুলি যেগুলি সর্বাধিক সংখ্যক ডিভাইসে ভালভাবে চলে সেগুলি 3D আর্ট দিয়ে শুরু হয় যা গ্রাফিক্স প্রসেসরগুলির সর্বোত্তম সুবিধা নেওয়ার জন্য ডিজাইন করা হয়েছে। এই নির্দেশিকাটি মোবাইলে টেক্সচারের জন্য অপ্টিমাইজেশন এবং সর্বোত্তম অনুশীলনগুলি হাইলাইট করে যাতে আপনার গেমটি আরও ভাল পারফর্ম করতে পারে এবং উচ্চ ভিজ্যুয়াল গুণমান বজায় রেখে পাওয়ার খরচ কমিয়ে আনতে পারে৷

এই নিবন্ধের অংশগুলি আর্ম লিমিটেড দ্বারা অবদানকৃত এবং কপিরাইটযুক্ত কাজের উপর ভিত্তি করে।

টেক্সচার অ্যাটলেস তৈরি করুন

একটি টেক্সচার অ্যাটলাস হল একটি টেক্সচার যা একাধিক গ্রাফিক বস্তুর ইমেজ ডেটা ধারণ করার জন্য ডিজাইন করা হয়েছে, যেমন 3D মেশ বা 2D স্প্রাইট। প্রতিটি বস্তুর নিজস্ব টেক্সচারের পরিবর্তে, প্রতিটি বস্তুর ছবিগুলিকে একত্রিত করতে একটি অ্যাটলাস টেক্সচার ব্যবহার করা হয়।

একটি টেক্সচার অ্যাটলাস শেয়ার করে এমন মেশ
চিত্র 1. রেন্ডার করা দৃশ্যে হলুদ হাইলাইট (বামে) মেশের রূপরেখা দেয় যা টেক্সচার অ্যাটলাস (ডানে) ভাগ করে।

একটি গেম ফ্রেমের ড্র কলের সংখ্যা হ্রাস করা সর্বোত্তম রেন্ডারিং কর্মক্ষমতা অর্জনের একটি গুরুত্বপূর্ণ উপাদান। বিভিন্ন বস্তুর জন্য একই টেক্সচার ব্যবহার করা তাদের একটি একক ড্র কলে একত্রিত করার জন্য একটি কারণ। CPU আবদ্ধ গেমগুলির জন্য ড্র কলগুলি হ্রাস করা বিশেষভাবে গুরুত্বপূর্ণ, কারণ প্রতিটি ড্র কল গ্রাফিক্স ড্রাইভার দ্বারা প্রসেস করার কারণে CPU ওভারহেড হয়। টেক্সচার অ্যাটলেসগুলি আপনার গেমের রানটাইম ডেটাতে টেক্সচার অ্যাসেট ফাইলের সংখ্যাও কমিয়ে দেয়। শত শত বা এমনকি হাজার হাজার টেক্সচারকে অনেক কম সংখ্যক টেক্সচার অ্যাটলাস ফাইলে একত্রিত করা যেতে পারে।

3D মেশ তৈরি করার সময় আপনার টেক্সচার অ্যাটলাস লেআউটের পরিকল্পনা করা উচিত। যদি জাল সম্পদ তৈরি করার আগে অ্যাটলাস রচিত হয়, তাহলে জাল সম্পদটি টেক্সচার অ্যাটলাস অনুসরণ করে ইউভি আনর্যাপ করা আবশ্যক। পেইন্টিং সফ্টওয়্যারে মার্জিং বা অ্যাটলাস তৈরির সরঞ্জামগুলি ব্যবহার করে লেখার পরে অ্যাটলাস তৈরি করা হলে, ইউভি দ্বীপটিকে টেক্সচার অনুসারে পুনর্বিন্যাস করতে হবে।

ইঞ্জিন নির্দিষ্ট ড্র কল ব্যাচিং

ইউনিটি গেম ইঞ্জিনে একটি ড্র কল ব্যাচিং বৈশিষ্ট্য রয়েছে যা স্বয়ংক্রিয়ভাবে বস্তুগুলিকে একত্রিত করতে পারে। স্বয়ংক্রিয় ব্যাচিংয়ের জন্য যোগ্য হতে, অবজেক্টগুলিকে অবশ্যই টেক্সচার সহ একটি সাধারণ উপাদান ভাগ করতে হবে এবং স্ট্যাটিক চিহ্নিত করতে হবে।

অবাস্তব ইঞ্জিন 4 এর ব্যাচিংয়ের জন্য ম্যানুয়াল সেটআপ প্রয়োজন। আপনি 3D সফ্টওয়্যারে বস্তুগুলিকে অবাস্তব-এ আমদানি করার আগে মার্জ করতে পারেন৷ অবাস্তব- এ UE4 অ্যাক্টর মার্জিং টুলও রয়েছে যা মেশকে একত্রিত করতে পারে এবং টেক্সচার অ্যাটলাস ফাইল তৈরি করতে পারে।

মিপম্যাপ তৈরি করুন

মিপম্যাপ একটি টেক্সচারের নিম্ন রেজোলিউশন সংস্করণ। একটি প্রদত্ত টেক্সচারের জন্য মিপম্যাপের সংগ্রহকে একটি মিপম্যাপ চেইন বলা হয়। একটি শৃঙ্খলে প্রতিটি পরবর্তী mipmap স্তর পূর্ববর্তী স্তরের তুলনায় একটি নিম্ন রেজোলিউশন। মিপম্যাপগুলি রেন্ডারিংয়ের সময় টেক্সচার LOD (বিস্তারিত স্তর) প্রয়োগ করতে ব্যবহৃত হয়। যখন একটি মিপম্যাপ করা টেক্সচার একটি টেক্সচার পর্যায়ে আবদ্ধ হয়, তখন গ্রাফিক্স হার্ডওয়্যারটি মিপম্যাপ চেইন থেকে একটি স্তর বেছে নিতে একটি খণ্ড দ্বারা দখলকৃত টেক্সচার স্থান ব্যবহার করে। একটি 3D দৃশ্য রেন্ডার করার সময়, ক্যামেরা থেকে দূরে থাকা একটি বস্তু ক্যামেরার কাছাকাছি একই বস্তুর চেয়ে কম রেজোলিউশনের মিপম্যাপ ব্যবহার করবে।

একটি মিপম্যাপড টেক্সচার একটি নন মিপম্যাপড টেক্সচারের তুলনায় বেশি মেমরি ব্যবহার করে। অতিরিক্ত মিপম্যাপের মাত্রা একটি টেক্সচারের মেমরি পদচিহ্ন 33% বৃদ্ধি করে। ক্যামেরা থেকে একটি নির্দিষ্ট দূরত্বে টেক্সচার আঁকা হলে, মিপম্যাপ তৈরি করা মেমরির একটি অপ্রয়োজনীয় ব্যবহার।

512x512 পিক্সেলের বেস টেক্সচার রেজোলিউশন থেকে একটি মিপম্যাপ চেইন
চিত্র 2. একটি মিপম্যাপ চেইন, টেক্সচারের বেস রেজোলিউশন হল 512x512 পিক্সেল।

সঠিকভাবে মিপম্যাপ ব্যবহার করলে GPU কর্মক্ষমতা উন্নত হয়। নিম্ন রেজোলিউশনের মিপম্যাপ স্তরের প্রাপ্যতা মেমরি ব্যান্ডউইথের ব্যবহার হ্রাস করে এবং টেক্সচার ক্যাশে রেসিডেন্সি উন্নত করে।

মিপম্যাপিং টেক্সচার অ্যালিয়াসিং কমিয়ে ভিজ্যুয়াল মান উন্নত করতে পারে। টেক্সচার অ্যালিয়াসিং ক্যামেরা থেকে আরও এলাকায় একটি ঝাঁকুনি প্রভাব হিসাবে লক্ষ্য করা যেতে পারে।

টেক্সচার অ্যালিয়াসিংয়ের একটি উদাহরণ
চিত্র 3. টেক্সচার অ্যালিয়াসিংয়ের একটি উদাহরণ। একটি ছবি মিপম্যাপ (বাম) ছাড়াই রেন্ডার করা হয়েছে, অন্যটি মিপম্যাপ (ডানে) সহ। বাম ছবিতে লাল আয়তক্ষেত্রের ভিতরে টেক্সচার অ্যালিয়াসিং লক্ষ্য করা যেতে পারে।

ইঞ্জিন নির্দিষ্ট mipmap বিবরণ

মিপম্যাপিং ব্যবহার করার জন্য অবাস্তব ইঞ্জিন 4-এর টেক্সচারের মাত্রা প্রয়োজন যা দুটি শক্তির (যেমন 512x1024, 128x128)। মিপম্যাপ চেইন তৈরি করা হবে না যদি এক বা উভয় টেক্সচারের মাত্রা দুটির শক্তি না হয়।

ইউনিটি ইঞ্জিন স্বয়ংক্রিয়ভাবে টেক্সচারগুলিকে এমন মাত্রার সাথে স্কেল করবে যা মাইপম্যাপ তৈরি করতে দুটি শক্তি নয়। এই স্কেলিং এড়াতে আপনার উৎস টেক্সচার ফাইল দুটি মাত্রার শক্তি নিশ্চিত করুন।

উপযুক্ত টেক্সচার ফিল্টারিং মোড নির্বাচন করুন

টেক্সচার ফিল্টারিং হল একটি হার্ডওয়্যার রেন্ডারিং বৈশিষ্ট্য যা রেন্ডার করা ত্রিভুজের ভিজ্যুয়াল চেহারাকে প্রভাবিত করে। টেক্সচার ফিল্টারিংয়ের সঠিক ব্যবহার একটি দৃশ্যের ভিজ্যুয়াল গুণমান উন্নত করতে পারে। একাধিক টেক্সচার ফিল্টারিং মোড রয়েছে, প্রতিটিতে রেন্ডারিং উন্নতি এবং খরচের মধ্যে আলাদা ভারসাম্য রয়েছে। খরচ গণনার সময় এবং মেমরি ব্যান্ডউইথ উভয়ই অন্তর্ভুক্ত। তিনটি সাধারণভাবে উপলব্ধ টেক্সচার ফিল্টারিং মোড হল: নিকটতম (বা বিন্দু), বাইলিনিয়ার এবং ট্রিলিনিয়ার। অ্যানিসোট্রপিক হল একটি অতিরিক্ত টেক্সচার ফিল্টারিং পদ্ধতি যা বাইলিনিয়ার বা ট্রিলিনিয়ার ফিল্টারিংয়ের সাথে মিলিত হতে পারে।

নিকটতম

নিকটতম হল সবচেয়ে সহজ এবং কম ব্যয়বহুল টেক্সচার ফিল্টারিং মোড। উৎস টেক্সচারে নির্দিষ্ট স্থানাঙ্ক ব্যবহার করে একটি একক টেক্সেলের নিকটতম নমুনা। কাছের সাথে রেন্ডার করা ত্রিভুজগুলির একটি ব্লকি বা পিক্সেলেড চেহারা থাকবে, বিশেষত যখন ক্যামেরার কাছাকাছি রেন্ডার করা হয়।

বিলিনিয়ার

বিলিনিয়ার ফিল্টারিং উৎস টেক্সচারে নির্দিষ্ট স্থানাঙ্কের চারপাশে চারটি টেক্সেলের নমুনা দেয়। এই চারটি টেক্সেল খণ্ডের জন্য টেক্সচার রঙ নির্ধারণ করতে গড় করা হয়। বাইলিনিয়ার ফিল্টারিংয়ের ফলে পিক্সেলের মধ্যে একটি মসৃণ গ্রেডিয়েন্ট তৈরি হয়, যা নিকটতম ফিল্টারিংয়ের অবরুদ্ধ চেহারা এড়িয়ে যায়। ক্যামেরার কাছাকাছি রেন্ডার করা ত্রিভুজগুলি পিক্সেলের পরিবর্তে অস্পষ্ট দেখাবে৷ অতিরিক্ত টেক্সেল নমুনা এবং গড় কারণে বিলিনিয়ারের দাম নিকটতম থেকে বেশি।

নিকটতম এবং বাইলিনিয়ার ফিল্টারিংয়ের মধ্যে একটি তুলনা
চিত্র 4. নিকটতম (বাম) এবং বাইলিনিয়ার (ডান) টেক্সচার ফিল্টারিংয়ের তুলনা।

ট্রিলিনিয়ার

আপনি যখন একটি জাল রেন্ডার করেন যেখানে ক্যামেরা থেকে শীর্ষবিন্দুর দূরত্ব পরিবর্তিত হয়, রেন্ডারিংয়ের সময় একাধিক মিপম্যাপ স্তর নির্বাচন করা হতে পারে। দুটি মিপম্যাপ স্তরের মধ্যে পরিবর্তনগুলি ট্রানজিশন পয়েন্টে একটি লক্ষণীয় তীক্ষ্ণ কাটা হতে পারে। ট্রিলিনিয়ার ফিল্টারিং দুটি ভিন্ন মিপম্যাপ স্তরে বাইলিনিয়ার ফিল্টারিং সম্পাদন করে এবং ফলাফলগুলিকে ইন্টারপোলেট করে এই রূপান্তরগুলিকে নরম করে। মাল্টিপল মিপ লেভেল এবং ইন্টারপোলেশনের ব্যবহার ট্রিলিনিয়ারকে বাইলিনিয়ারের তুলনায় কম্পিউটেশনালভাবে বেশি ব্যয়বহুল করে তোলে।

বাইলিনিয়ার এবং ট্রিলিনিয়ার ফিল্টারিংয়ের মধ্যে একটি তুলনা
চিত্র 5. বাইলিনিয়ার (বাম) এবং ট্রিলিনার (ডান) টেক্সচার ফিল্টারিংয়ের তুলনা। জুম করা অঞ্চলটি মিপম্যাপ ট্রানজিশনের সাথে রেন্ডারিংয়ের পার্থক্যকে বৈপরীত্য করে।

অ্যানিসোট্রপিক

অ্যানিসোট্রপিক ফিল্টারিং টেক্সচারযুক্ত জালের ভিজ্যুয়াল গুণমান বাড়ায় যা ক্যামেরার সাপেক্ষে চরম কোণে রেন্ডার করা হয়। একটি স্থল সমতল এই ধরনের জাল একটি সাধারণ উদাহরণ. অ্যানিসোট্রপিক ফিল্টারিংয়ের কাজ করার জন্য মিপম্যাপ করা টেক্সচারের প্রয়োজন হয়। রেন্ডারিংয়ের সময় প্রয়োগ করা অ্যানিসোট্রপিক ফিল্টারিংয়ের অনুপাত বা স্তর কনফিগার করা যেতে পারে। অ্যানিসোট্রপিক ফিল্টারিং এর খরচ মাত্রা বৃদ্ধির সাথে সাথে বৃদ্ধি পায়।

1x এবং 2x অ্যানিসোট্রপিক ফিল্টারিংয়ের মধ্যে একটি তুলনা
চিত্র 6. বাইলিনিয়ার/1x অ্যানিসোট্রপিক ফিল্টারিং (বাম) এবং বিলিনিয়ার/2x অ্যানিসোট্রপিক ফিল্টারিং (ডান) এর তুলনা

মোড নির্বাচন কৌশল

বাইলিনিয়ার ফিল্টারিং সাধারণত কর্মক্ষমতা এবং চাক্ষুষ মানের মধ্যে সর্বোত্তম ভারসাম্য। ট্রিলিনিয়ার ফিল্টারিংয়ের জন্য উল্লেখযোগ্যভাবে বেশি মেমরি ব্যান্ডউইথ প্রয়োজন এবং বেছে বেছে ব্যবহার করা উচিত। অনেক ক্ষেত্রে, 2x অ্যানিসোট্রপিক ফিল্টারিংয়ের সাথে মিলিত বাইলিনিয়ার ফিল্টারিং 1x অ্যানিসোট্রপিক ফিল্টারিংয়ের সাথে ট্রিলিনিয়ার ফিল্টারিংয়ের চেয়ে ভাল দেখায় এবং কার্য সম্পাদন করে। অ্যানিসোট্রপিক মাত্রা 2x এর বেশি বাড়ানো অত্যন্ত ব্যয়বহুল এবং সমালোচনামূলক গেম সম্পদের জন্য খুব বেছে বেছে করা উচিত।

টেক্সচার ফিল্টারিং মোট GPU শক্তি খরচের অর্ধেক পর্যন্ত হতে পারে, যেখানে সম্ভব সহজ টেক্সচার ফিল্টার বেছে নেওয়া আপনার গেমের পাওয়ার চাহিদা কমানোর একটি চমৎকার উপায়।

টেক্সচারের মাপ অপ্টিমাইজ করুন

আপনার পছন্দসই চিত্রের গুণমান অর্জন করার সময় আপনার টেক্সচারের মাত্রা যতটা সম্ভব ছোট তা নিশ্চিত করুন। ভুলভাবে বড় টেক্সচার চেক করতে আপনার টেক্সচার সম্পদ পর্যালোচনা করুন। এই নীতিটি পৃথক এবং অ্যাটলাস টেক্সচার উভয় ক্ষেত্রেই প্রযোজ্য। যদি আপনার গেমটি রেজোলিউশন এবং পারফরম্যান্স ক্ষমতার বিস্তৃত পরিসরের অনেকগুলি ডিভাইসকে সমর্থন করে, তাহলে উপযুক্ত ডিভাইস শ্রেণীর জন্য আপনার টেক্সচার সম্পদের কম এবং উচ্চ রেজোলিউশন সংস্করণ তৈরি করার কথা বিবেচনা করুন।

একটি জাল রেন্ডার করার সময় যা এর উপাদানে একাধিক টেক্সচার ব্যবহার করে, কিছু টেক্সচারের রেজোলিউশনকে বেছে বেছে বিবেচনা করুন। উদাহরণস্বরূপ, যখন 1024x1024 এর একটি ডিফিউজ টেক্সচার ব্যবহার করা হয়, তখন রুক্ষতা বা ধাতব মানচিত্রের টেক্সচারকে 512x512-এ কমিয়ে ছবি মানের উপর সামান্য প্রভাবের মাধ্যমেই সম্ভব হতে পারে। তারা পছন্দসই মানের স্তরের সাথে আপস করে না তা নিশ্চিত করার জন্য এই ধরনের সমস্ত রিসাইজিং পরীক্ষার প্রভাব যাচাই করুন।

উপযুক্ত রঙের স্থান ব্যবহার করুন

টেক্সচার অথরিংয়ের জন্য ব্যবহৃত অনেক সফ্টওয়্যার প্যাকেজ sRGB রঙের স্থান ব্যবহার করে কাজ করে এবং রপ্তানি করে। ডিফিউজ টেক্সচার, যা রঙ হিসাবে প্রক্রিয়া করা হয়, sRGB রঙের স্থান ব্যবহার করতে পারে। যে টেক্সচারগুলি রঙ হিসাবে প্রক্রিয়া করা হয় না, যেমন ধাতব, রুক্ষতা বা সাধারণ মানচিত্র, sRGB রঙের জায়গায় রপ্তানি করা উচিত নয়।

গেম ইঞ্জিন টেক্সচার সেটিংসে একটি টেক্সচার sRGB রঙের স্থান ব্যবহার করে কিনা তার জন্য একটি প্যারামিটার অন্তর্ভুক্ত করে।

ইউনিটি এবং অবাস্তব ইঞ্জিন 4-এ sRGB টেক্সচার সেটিংস
চিত্র 7. ইউনিটি (বাম) এবং অবাস্তব ইঞ্জিন 4 (ডান) এ sRGB টেক্সচার সেটিংস।

যেহেতু এই ধরনের টেক্সচারের পিক্সেল ডেটা রঙের ডেটা হিসাবে ব্যবহার করা হয় না, তাই sRGB রঙের স্থান ব্যবহার করলে ভুল ভিজ্যুয়াল তৈরি হবে।

রৈখিক বনাম sRGB রঙের জায়গায় একটি রুক্ষতা ধাতব মানুষ রেন্ডারিং
চিত্র 8. একটি লিনিয়ার (নন sRGB) রুক্ষতা ধাতব মানচিত্র (বাম) এবং sRGB রুক্ষতা ধাতব মানচিত্র (ডান)। ডান দিকে প্রতিফলন ভুল প্রদর্শিত হবে.

টেক্সচার কম্প্রেশন ব্যবহার করুন

টেক্সচার কম্প্রেশন হল একটি ইমেজ কম্প্রেশন অ্যালগরিদম যা কম্প্রেসড পিক্সেল ডেটাতে প্রয়োগ করা হয় যার ফলে একটি টেক্সচার তৈরি হয় যা রেন্ডারিংয়ের সময় গ্রাফিক্স হার্ডওয়্যার দ্বারা দ্রুত ডিকম্প্রেস করা যায়। টেক্সচার কম্প্রেশনের কার্যকরী ব্যবহার মেমরির ব্যবহার কমাতে পারে এবং চাক্ষুষ মানের উপর ন্যূনতম প্রভাব সহ কর্মক্ষমতা বাড়াতে পারে। তিনটি টেক্সচার কম্প্রেশন অ্যালগরিদম অ্যান্ড্রয়েডে সবচেয়ে সাধারণ: ETC1, ETC2 এবং ASTC । আধুনিক গেমগুলির জন্য, ASTC হল সর্বোত্তম প্রাথমিক বিকল্প, যদি আপনার গেমটি ASTC সমর্থন করে না এমন ডিভাইসগুলিকে লক্ষ্য করে তাহলে ETC2 একটি ফলব্যাক বিকল্প।

ETC1

ETC1 সমস্ত অ্যান্ড্রয়েড ডিভাইস দ্বারা সমর্থিত। ETC1 শুধুমাত্র RGB কালার ডেটার প্রতি পিক্সেল মোডের একটি একক চার বিট সমর্থন করে। ETC1 আলফা চ্যানেল সমর্থন করে না। ETC1 সমর্থন করে এমন অনেক গেম ইঞ্জিন আলফা চ্যানেল ডেটা উপস্থাপন করার জন্য দ্বিতীয় ETC1 টেক্সচারের উপাধি ব্যবহার করার অনুমতি দেয়।

ETC2

ETC2 সক্রিয় অ্যান্ড্রয়েড ডিভাইসের 90% দ্বারা সমর্থিত। অনেক পুরানো ডিভাইস যা OpenGL ES 3.0 API সমর্থন করে না তারা ETC2 ব্যবহার করতে অক্ষম। ETC1 এর তুলনায়, ETC2 যোগ করে:

  • আলফা চ্যানেল সমর্থন, উভয় আট বিট এবং একক বিট 'পাঞ্চথ্রু'
  • RGB এবং RGBA টেক্সচারের sRGB সংস্করণ
  • এক এবং দুই চ্যানেল, R11 এবং RG11, টেক্সচার

ASTC

ASTC সক্রিয় অ্যান্ড্রয়েড ডিভাইসের 75% দ্বারা সমর্থিত। ASTC-এর কনফিগারযোগ্য কম্প্রেশন ব্লক মাপ রয়েছে, যা আপনাকে একটি প্রদত্ত টেক্সচারের জন্য ছবির মানের বিপরীতে কম্প্রেশন অনুপাতের ভারসাম্য বজায় রাখতে সূক্ষ্ম-দানাযুক্ত নিয়ন্ত্রণ দেয়। ASTC প্রায়শই ETC2 এর মতো একই মেমরি আকারে বা ETC2 এর চেয়ে ছোট মেমরি আকারে একই পরিমাণে উচ্চতর গুণমান অর্জন করতে সক্ষম।

একই সোর্স ইমেজ ব্যবহার করে টেক্সচার কম্প্রেশন ফরম্যাটের একটি ভিজ্যুয়াল তুলনা
চিত্র 9. চিত্রগুলির মধ্যে একটি তুলনা যা: অসংকুচিত (বাম, আকারে 17MB), ETC1 (মাঝে, 3MB আকারে), ASTC (ডানে, 2.5MB আকারে) দিয়ে সংকুচিত।

টেক্সচার কম্প্রেশন গতি

আপনার গেমে অনেক টেক্সচার থাকলে টেক্সচার কম্প্রেশনে অনেক সময় লাগতে পারে। ETC এবং ASTC উভয়েরই নির্বাচনযোগ্য কম্প্রেশন মানের সেটিংস রয়েছে। উচ্চ মানের সেটিংস কম্প্রেস করতে আরও সময় প্রয়োজন। বিকাশের সময় আপনি কম্প্রেশন সময় কমাতে এবং গুরুত্বপূর্ণ বিল্ড তৈরি করার আগে মানের স্তর বাড়াতে মানের স্তর হ্রাস করতে চাইতে পারেন।

গেম ইঞ্জিনে টেক্সচার কম্প্রেশন

আপনি যদি একটি গেম ইঞ্জিন ব্যবহার করেন তবে আপনাকে একটি প্রকল্প স্তরে আপনার টেক্সচার কম্প্রেশন বিন্যাস (ETC বা ASTC) চয়ন করতে হতে পারে। সর্বাধিক সামঞ্জস্যের জন্য একাধিক কম্প্রেশন বিন্যাস সমর্থন করতে, অতিরিক্ত কাজের প্রয়োজন হতে পারে। Google Play অ্যাসেট ডেলিভারির টেক্সচার কম্প্রেশন ফরম্যাট টার্গেটিং বৈশিষ্ট্যটি আপনার গেমের একাধিক ফর্ম্যাট অন্তর্ভুক্ত করতে এবং ইনস্টলের সময় শুধুমাত্র একটি পৃথক ডিভাইসে সর্বাধিক অনুকূল ফর্ম্যাট সরবরাহ করতে সহায়তা করতে পারে।

UVs খুলে ফেলুন

UV দ্বীপ যতটা সম্ভব সোজা রাখুন। এটি নিম্নলিখিত উপায়ে আপনার জমিন সাহায্য করে:

  • UV দ্বীপগুলি প্যাক করা সহজ, যার ফলে জায়গা কম নষ্ট হয়।
  • স্ট্রেইট ইউভি টেক্সচারে 'সিঁড়ি প্রভাব' কমিয়ে দেয়।
  • ভাল UV প্যাকিং টেক্সচার থেকে সর্বোত্তম রেজোলিউশন পাওয়া নিশ্চিত করে।
  • ভাল মানের টেক্সচারিং, এমনকি যদি UV গুলি সোজা করা থেকে কিছুটা বিকৃত হয়।
একটি অপ্টিমাইজড UV দ্বীপ বনাম একটি অপ্টিমাইজড UV দ্বীপ
চিত্র 10. একটি অঅপ্টিমাইজড ইউভি দ্বীপ (বাম) এবং একটি সোজা/আবদ্ধ UV দ্বীপ (ডানে)।

একটি মডেলের উপর দৃশ্যমান টেক্সচার seams খারাপ চেহারা। কোন UV seams যেখানে তারা কম দৃশ্যমান জায়গায় স্থাপন করার চেষ্টা করুন. আরও ভাল স্বাভাবিক মানচিত্র তৈরি করতে সাহায্য করার জন্য, আপনার UV দ্বীপকে বিভক্ত করুন যেখানে প্রান্তগুলি তীক্ষ্ণ এবং দ্বীপের চারপাশে কিছু জায়গা ছেড়ে দিন।

অদৃশ্য বিশদ এড়িয়ে চলুন

শিল্প তৈরি করার সময়, এমন বিশদ যোগ করবেন না যা দেখা যাবে না, বিশেষ করে ছোট পর্দার ডিভাইসগুলির জন্য ডিজাইন করা গেমগুলিতে। একটি জটিলভাবে বিশদ 4096x4096 টেক্সচার তৈরি করা একটি ছোট চেয়ারের মডেলে নষ্ট হয় যা একটি ঘরের কোণে সবেমাত্র দৃশ্যমান। কিছু ক্ষেত্রে, আকৃতির উপলব্ধি উন্নত করার জন্য আপনাকে প্রান্তগুলিকে অতিরঞ্জিত করতে হবে (অতিরিক্ত হাইলাইট যোগ করা) এবং শেডিং করতে হবে।

দূরত্বে রেন্ডার করা একটি মডেলে একটি ছোট টেক্সচার ব্যবহার করা হয়
চিত্র 11. একটি ছোট 256x256 টেক্সচার যার অত্যধিক বিবরণ নেই, দূরত্বে রেন্ডার করা সৈনিক মডেলে ব্যবহার করা হয়।

বেক বিবরণ

ব্যক্তিগত কম্পিউটার বা গেমিং কনসোলের তুলনায় মোবাইল ডিভাইসে ছোট স্ক্রীন এবং কম শক্তিশালী গ্রাফিক্স হার্ডওয়্যার রয়েছে। রানটাইমে অ্যাম্বিয়েন্ট অক্লুশন বা স্পেকুলার হাইলাইটিংয়ের মতো প্রভাবগুলি গণনা করার পরিবর্তে, সম্ভব হলে সেগুলিকে ডিফিউজ টেক্সচারে 'বেক' করার কথা বিবেচনা করুন। এটি কার্য সম্পাদনে সহায়তা করে এবং আপনার বিবরণের দৃশ্যমানতা নিশ্চিত করে।

বেকিং হাইলাইট এবং একটি বিস্তৃত জমিন মধ্যে পরিবেষ্টিত দখল
চিত্র 12. হাইলাইটস এবং অ্যাম্বিয়েন্ট অক্লুশন ডিফিউজ টেক্সচারে বেকড (বামে) এবং ইন-গেম (ডানে) রেন্ডার করা হয়েছে।

কালার টিন্টিং ব্যবহার করুন

আপনার যদি কাস্টম শেডার তৈরি করার ক্ষমতা থাকে এবং একই রকম বা অভিন্ন রঙের স্কিম আছে এমন মেশ থাকে, তাহলে প্রযোজ্য মেশগুলিতে রঙিন রঙ ব্যবহার করার কথা বিবেচনা করুন। কালার টিন্টিংয়ের সাথে, একটি গ্রেস্কেল টেক্সচার ব্যবহার করা হয়, যা একটি RGB টেক্সচারের চেয়ে কম টেক্সচার মেমরি নেয়। প্রতি শীর্ষবিন্দু রঙের ডেটা জালকে রঙিন করতে শেডার দ্বারা প্রয়োগ করা হয়। একটি বিকল্প টিন্টিং পদ্ধতি হল একটি RGB মাস্ক ব্যবহার করা এবং মুখোশের রঙের পরিসরের উপর ভিত্তি করে টেক্সচার প্রয়োগ করা।

রানটাইমে একটি গ্রেস্কেল টেক্সচার টিন্টেড
চিত্র 13. স্তম্ভ মডেলের (ডান) জন্য রানটাইমে একটি গ্রেস্কেল টেক্সচার (বাম) টিন্টেড।

টেক্সচার চ্যানেল প্যাক করুন

একাধিক টেক্সচার সহ উপকরণ রেন্ডার করার সময়, টেক্সচারগুলিকে একত্রিত করার সুযোগগুলি সন্ধান করুন যা শুধুমাত্র একটি একক রঙের চ্যানেল ব্যবহার করে একটি একক টেক্সচারে যা তিনটি রঙের চ্যানেল ব্যবহার করে। এটি মেমরির ব্যবহার হ্রাস করে এবং ফ্র্যাগমেন্ট শেডার দ্বারা সম্পাদিত টেক্সচার স্যাম্পলার অপারেশনের সংখ্যা হ্রাস করে।

তিনটি একক-চ্যানেল টেক্সচার একটি মাল্টি-চ্যানেল টেক্সচারে মিলিত
চিত্র 14. তিনটি একক-চ্যানেল টেক্সচার (বাম) এক মাল্টি-চ্যানেল টেক্সচারে (ডানে) একত্রিত হয়। পরিবেষ্টিত অবরোধ ডেটা লাল, রুক্ষতা/মসৃণতা মানচিত্রকে সবুজ এবং ধাতব মানচিত্রটি নীলে বরাদ্দ করা হয়েছে।

প্যাকিং করার সময়, গ্রিন চ্যানেলে সর্বাধিক বিশদ সহ ডেটা বরাদ্দ করুন। যেহেতু মানুষের চোখ সবুজের প্রতি বেশি সংবেদনশীল , তাই গ্রাফিক্স হার্ডওয়্যার সাধারণত গ্রিন চ্যানেলে আরও বিট বরাদ্দ করে। উদাহরণস্বরূপ, একটি রুক্ষতা/মসৃণতা মানচিত্রে সাধারণত একটি ধাতব মানচিত্রের চেয়ে আরও বিশদ থাকে এবং গ্রিন চ্যানেলে বরাদ্দ করার জন্য এটি একটি ভাল পছন্দ।

আলফা চ্যানেল ব্যবহার করে এমন উপকরণগুলির জন্য, যদি আপনি আপনার প্যাক করা টেক্সচারে শুধুমাত্র দুটি চ্যানেল ব্যবহার করেন, তাহলে আলফা চ্যানেলের ডেটা আপনার বিচ্ছুরিত টেক্সচারের পরিবর্তে আপনার প্যাকড টেক্সচারে রাখার কথা বিবেচনা করুন। আপনার বিচ্ছুরিত টেক্সচারের বিন্যাসের উপর নির্ভর করে, এটি আপনাকে এর আকার কমাতে বা আলফা চ্যানেল ডেটা বাদ দিয়ে এর ভিজ্যুয়াল গুণমান বাড়াতে সাহায্য করতে পারে।

একটি আলফা চ্যানেল অন্য টেক্সচারে প্যাক করা হয়েছে
চিত্র 15. একটি আলফা চ্যানেল অপাসিটি মানচিত্র একটি রুক্ষতা/মসৃণতা মানচিত্র এবং একটি ধাতব মানচিত্র সহ একটি টেক্সচারে প্যাক করা হয়েছে।

নিশ্চিত করুন যে আপনার প্যাক করা টেক্সচারগুলি একটি রৈখিক RGB রঙের জায়গায় সেট করা আছে এবং sRGB নয়।

সাধারণ মানচিত্র তৈরি করুন

সাধারণ ম্যাপিং হল এমন একটি কৌশল যা একটি 3D মডেলকে অতিরিক্ত জ্যামিতি ব্যবহার না করেই বিশদ বিবরণ দেয়। রিঙ্কেল বা বোল্টের মতো বৈশিষ্ট্য যার মডেলের জন্য অনেক ত্রিভুজ প্রয়োজন হতে পারে একটি সাধারণ মানচিত্র ব্যবহার করে সিমুলেট করা যেতে পারে। খেলার শিল্প শৈলী এবং দিকনির্দেশের উপর নির্ভর করে সাধারণ ম্যাপিং উপযুক্ত হতে পারে বা নাও হতে পারে।

একটি মডেল একটি সাধারণ মানচিত্র সহ এবং ছাড়া রেন্ডার করা হয়েছে৷
চিত্র 16. একটি মডেল একটি সাধারণ মানচিত্র (বাম) ছাড়া রেন্ডার করা হয়েছে এবং একই মডেল একটি সাধারণ মানচিত্র (মাঝে) এবং সাধারণ মানচিত্রের টেক্সচার (ডান) সহ রেন্ডার করা হয়েছে৷

সাধারণ মানচিত্রগুলি কিছু কার্যক্ষমতা খরচ বহন করে এবং নিম্ন প্রান্তের ডিভাইসগুলিতে অল্প পরিমাণে ব্যবহার করা উচিত। স্বাভাবিক মানচিত্রের জন্য একটি অতিরিক্ত টেক্সচারের প্রয়োজন হয়, যার ফলে অতিরিক্ত টেক্সচার স্যাম্পলিং এবং ফ্র্যাগমেন্ট শেডার গণনা হয়।

সাধারণ মানচিত্র সেরা অনুশীলন

সাধারণ মানচিত্র তৈরির জন্য নিম্নলিখিত কিছু সেরা অনুশীলনগুলি রয়েছে:

একটি খাঁচা ব্যবহার করুন

একটি খাঁচা আপনার নিম্ন বহুভুজ মডেলের একটি বড়, বা বাইরে ঠেলে দেওয়া সংস্করণ। সাধারণ মানচিত্র বেকিংয়ের সময় ভালভাবে কাজ করার জন্য এটি উচ্চ বহুভুজ মডেলকে অন্তর্ভুক্ত করতে হবে। খাঁচাটি সাধারণ মানচিত্র বেকিংয়ের সময় রেকাস্ট দূরত্ব সীমিত করতে ব্যবহৃত হয় এবং সাধারণ মানচিত্রে বিভক্ত স্বাভাবিক সীমগুলির সমস্যা এড়াতে সহায়তা করে।

নিম্ন বহুভুজ জাল ঘিরে একটি খাঁচা
চিত্র 17. নিম্ন বহুভুজ জালের চারপাশে একটি খাঁচা।
একটি খাঁচা সহ এবং ছাড়া একটি সাধারণ মানচিত্র ব্যবহার করে রেন্ডার করা একটি মডেল৷
চিত্র 18. একটি খাঁচা (ডান) ছাড়া উত্পন্ন একটি সাধারণ মানচিত্র ব্যবহার করে রেন্ডার করা একটি মডেলের তুলনায় একটি খাঁচা (বাম) দিয়ে তৈরি একটি সাধারণ মানচিত্র ব্যবহার করে একটি মডেল রেন্ডারিং।

জাল নামে বেক ম্যাচিং

যদি আপনার বেকিং সফ্টওয়্যার এটি সমর্থন করে, জাল নাম দ্বারা বেক ম্যাচিং. এই বৈশিষ্ট্যটি ভুল স্বাভাবিক মানচিত্র অভিক্ষেপের সমস্যাকে প্রশমিত করে। যখন বস্তুগুলি একে অপরের খুব কাছাকাছি থাকে, তখন তারা অপ্রত্যাশিতভাবে তাদের স্বাভাবিক মানচিত্রটি ভুল মুখে প্রজেক্ট করতে পারে। জালের নাম দিয়ে ম্যাচিং নিশ্চিত করে যে বেকিং শুধুমাত্র সঠিক পৃষ্ঠে করা হয়েছে। সাবস্ট্যান্স পেইন্টারে এই বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, এই পৃষ্ঠাটি দেখুন । মারমোসেট টুলব্যাগে এই বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, এই পৃষ্ঠাটি দেখুন

জাল বিস্ফোরণ

আপনি যদি বেক করার সময় জাল নাম দিয়ে মেলাতে অক্ষম হন, তাহলে আপনার জাল বিস্ফোরণ বিবেচনা করুন। আপনার জাল বিস্ফোরিত করা অংশগুলিকে একে অপরের থেকে দূরে সরিয়ে দেয় যাতে স্বাভাবিক মানচিত্রটি ভুল পৃষ্ঠের উপর প্রজেক্ট না করে। আপনি যদি পরিবেষ্টিত অবরোধের জন্যও বেক করেন তবে আপনাকে একটি অবিস্ফোরিত জাল দিয়ে আলাদাভাবে সেই বেকটি সম্পাদন করতে হতে পারে।

স্বাভাবিক মানচিত্র বেক করার জন্য একটি বিস্ফোরিত জাল
চিত্র 19. সাধারণ মানচিত্র বেক করার জন্য একটি বিস্ফোরিত জাল

seams ছোট করুন

হার্ড প্রান্তে ক্রমাগত UV দৃশ্যমান seams সৃষ্টি করবে, এই প্রভাব কমাতে শক্ত প্রান্তে UV বিভক্ত করবে। মসৃণ গ্রুপ সেট করার সময়, একটি নিয়ম হিসাবে, কোণটি 90 ডিগ্রির কম রাখুন। UV seams ত্রিভুজ উপর একটি ভিন্ন মসৃণ গ্রুপ থাকতে হবে।