ডিফার্ড শেডিং কেবল পরবর্তী পর্যায়ে আসল শেডিং অপারেশন "মুলতুবি" করার একটি কৌশল, এটি প্রয়োজনীয় পাসগুলির সংখ্যা হ্রাস করতে দুর্দান্ত হতে পারে (উদাহরণস্বরূপ) 10 টি লাইট রেন্ডার করতে 10 পাস প্রয়োজন needs আমার বক্তব্যটি আপনি যে রেন্ডারিং টেকনিকটি ব্যবহার করছেন তা নির্বিশেষে কিছু সম্ভাব্য রেন্ডারিং অপটিমাইজেশন রয়েছে যা আপনার রেন্ডারিং পাইপলাইনের প্রক্রিয়া করার জন্য প্রয়োজনীয় অবজেক্টের (ভার্টিক্স, নরমাল ইত্যাদি) সংখ্যা হ্রাস করে।
অপ্টিমাইজেশানগুলি উপস্থাপনের জন্য কোনও ডি-ফ্যাক্টো স্ট্যান্ডার্ড নেই, বরং কয়েকটি কর্মক্ষমতা বৈশিষ্ট্য অর্জনের জন্য একাধিক কৌশল যা আন্তরচে বা একসাথে ব্যবহার করা যেতে পারে। প্রতিটি কৌশল ব্যবহার করা দৃশ্যের রেন্ডার হওয়ার উপর নির্ভর করে।
ডিফার্ড রেন্ডারিং সমস্যা সমাধান করার চেষ্টা করে যখন লাইটের সংখ্যা বৃদ্ধি পায়, যা সামনে রেন্ডারিংয়ে পাসের সংখ্যা বিস্ফোরিত হতে পারে।
এই কৌশলগুলি মুলতুবি শেডিং অংশটিকে সরাসরি অনুকূল করে তোলে না তবে আপনার বিবরণ অনুসারে মুলতিত শেডিং অংশটি আপনার সমস্যা নয়। আপনার সমস্যাটি হ'ল আপনি পুরো দৃশ্যটি পাইপলাইন উপস্থাপনে জমা দিচ্ছেন। সুতরাং আপনার ইঞ্জিনটি কেবলমাত্র জি-বাফারের কাছে ফলাফল জমা দিতে সক্ষম হওয়ার জন্য আপনার দৃশ্যে (উদাহরণস্বরূপ সমস্ত 100 মিলিয়ন প্রান্তকে) প্রক্রিয়া করতে হবে, যখন এই 100 মিলিয়ন ভার্টেক্সের বেশিরভাগই তুচ্ছভাবে দূরে সরে যেতে পারে, এবং জমা দেওয়া হয়নি প্রাক প্রক্রিয়া ভার্টেক্স এবং টুকরা পাস।
একটি ফরোয়ার্ড রেন্ডারারের ক্ষেত্রে এন ভার্টেক্স মোট হিসাবে শীর্ষস্থানীয় পর্যায় vertex count*lights count
এবং মোট হিসাবে খণ্ড স্তর দ্বারা প্রক্রিয়া করা হবে fragments count*number Lights
, স্থগিত শেড কার্যকরভাবে vertex count
এটি কেবল শীর্ষবিন্দু পর্যায়ে এবং fragments count
খণ্ড গণনার ক্ষেত্রে হ্রাস করার আগে হ্রাস করে আসল শেড তবে এখনও এন প্রসেস করার জন্য খুব বেশি পরিমাণে হতে পারে, বিশেষত যখন তাদের বেশিরভাগ ক্ষেত্রে তুচ্ছভাবে ধর্ষণ করা যায়।
ফরোয়ার্ড রেন্ডারিং / একাধিক পাসের ক্ষেত্রে এটি কুলিংকে আরও কার্যকর করে তোলে। তবে মনে রাখবেন যে বেশিরভাগ ইঞ্জিনগুলি দ্বৈত রেন্ডারিং পদ্ধতির ব্যবহার করবে, কারণ একা মুলতুবি শেডগুলি স্বচ্ছ বস্তুগুলি সমাধান করতে পারে না , এটি সেই অপ্টিমাইজেশানগুলি অবশ্যই আবশ্যক করে তোলে, আমি এমন কোনও বাণিজ্যিক ইঞ্জিন সম্পর্কে জানি না যা সেগুলি সবই করে না।
ফ্রাস্টাম কুলিং
হতাশার সাথে সম্পূর্ণ বা আংশিকভাবে অন্তর্ভুক্ত কেবলমাত্র অবজেক্টগুলিকেই কখনও রেন্ডারিং পাইপলাইনে জমা দেওয়া দরকার। হতাশা কুলিংয়ের এটি প্রাথমিক ধারণা, দুর্ভাগ্যক্রমে জালটি ভিউয়ের বাইরে / বাইরে রয়েছে কিনা তা পরীক্ষা করা একটি ব্যয়বহুল ক্রিয়াকলাপ হতে পারে, সুতরাং পরিবর্তে ইঞ্জিন ডিজাইনাররা আনুমানিক বাউন্ডিং ভলিউমটি একটি (এএবিবি) অক্ষ সংযুক্ত বাউন্ডিং বাক্স বা সীমানা গোলকের মতো ব্যবহার করে যদিও এটি প্রকৃত জাল ব্যবহারের মতো সঠিক নাও হতে পারে তবুও নির্ভুলতার পার্থক্যটি প্রকৃত জাল দিয়ে পরীক্ষা করার ঝামেলার পক্ষে উপযুক্ত নয়।
এমনকি বাউন্ডিং ভলিউমগুলির সাথেও, আপনাকে অবশ্যই প্রতিটি পরীক্ষা করার দরকার নেই, বিকল্পভাবে আপনি পূর্বের কুলিংয়ের জন্য একটি বাউন্ডিং ভলিউম স্তরক্রম তৈরি করতে পারেন, এটি ব্যবহার করে দৃশ্যের জটিলতার উপর নির্ভরশীল।
এটি একটি ছোট ইঞ্জিনের জন্য একটি ভাল এবং একটি সহজ কৌশল, এবং আমি ব্যবহৃত প্রতিটি ইঞ্জিনে প্রায় ব্যবহৃত হয়। যদি আপনার ইঞ্জিনটিকে খুব জটিল দৃশ্যের রেন্ডারিংয়ের প্রয়োজন না হয় তবে হায়ারার্কিগুলি ছাড়াই একটি "সাধারণ" বাউন্ডিং ভলিউম / ফ্রাস্টাম চেক ব্যবহার করার পরামর্শ দিচ্ছি।
পিছনে মুখ কুলিং
এটি একটি আবশ্যক, কেন এমন মুখগুলি আঁকুন যা কোনওভাবেই দৃশ্যমান হবে না? রেন্ডারিং এপিআইগুলি পিছনে মুখের কুলিং চালু / বন্ধ করার জন্য একটি ইন্টারফেস সরবরাহ করে। আপনার যদি এটি চালু না করার দৃ a় কারণ না থাকে তবে কিছু সিএডি অ্যাপ্লিকেশনগুলির মতো যা নির্দিষ্ট পরিস্থিতিতে ব্যাকফেসগুলি আঁকতে হবে, এটি অবশ্যই একটি কাজ।
অন্তর্ভুক্তি কুলিং
জেড-বাফার ব্যবহার করে আপনি দৃশ্যমানতা নির্ধারণ করতে পারেন। তবে সমস্যাটি হ'ল জেড-বাফার পারফরম্যান্সের ক্ষেত্রে সর্বদা দুর্দান্ত হয় না, যেহেতু জেড-বাফার কেবল পাইপলাইনের পরবর্তী পর্যায়ে সমাধান করা যায়, তাই অবজেক্টযুক্ত জিনিসগুলি জঞ্জাল করা উচিত এবং জেড-বাফার এবং এটিকে লিখিত হতে পারে জেড পরীক্ষায় ব্যর্থ হওয়ার আগে রঙিন বাফার করুন।
অন্তর্ভুক্তি কুলিং এর সমাধান করে, রেন্ডারিং হতাশায় অন্তর্ভুক্ত বস্তুগুলিকে কুল করার জন্য কিছু প্রাথমিক পরীক্ষা করে। অবসেশন কুলিংয়ের একটি ব্যবহারিক বাস্তবায়ন হচ্ছে পয়েন্ট-ভিত্তিক ক্যোয়ারী ব্যবহার করা এবং নির্দিষ্ট পয়েন্ট ভিউ থেকে নির্দিষ্ট কিছু বস্তু দৃশ্যমান কিনা তা পরীক্ষা করা। এটি এমন কুল লাইটগুলিতেও ব্যবহার করা যেতে পারে যা চূড়ান্ত চিত্রটিতে অবদান রাখে না এটি বিশেষত একটি মুলতুবি ইঞ্জিন রেন্ডারারের ক্ষেত্রে কার্যকর।
এই জাতীয় প্রযুক্তির একটি দুর্দান্ত বাস্তব বিশ্বের উদাহরণ জিটিএ 5-তে রয়েছে, যেখানে আকাশচুম্বী লোকেরা শহরের কেন্দ্রস্থলে দৃtig়ভাবে স্থাপন করা হয়, এটি কেবল সজ্জা নয়, তারা নগরের বাকী অংশকে কার্যকরভাবে ছড়িয়ে দেওয়া এবং এটিকে আটকাতে আটকে রাখার কাজও করে work rasterized।
বিশদ স্তরের
বিশদের স্তরেরটি বহুল ব্যবহৃত কৌশল ব্যবহার করা হয়, জাল যখন দৃশ্যে কম অবদান রাখে তখন জালটির একটি সহজ সংস্করণ ব্যবহার করা ধারণা to দুটি সাধারণ বাস্তবায়ন রয়েছে; একটি সহজ সরল সাথে জালটি স্যুইচ করে যখন এটি আর বেশি পরিমাণে অবদান রাখছে না, জালটি দূরত্ব এবং জালটি যে পিক্সেলের সংখ্যার (স্ক্রির উপরের অঞ্চল) দখল করছে তার সংখ্যার উপর নির্ভর করে নির্বাচন করা হয়। অন্যান্য সংস্করণটি গতিশীলভাবে জালকে পরীক্ষা করে, এটি টেরেন রেন্ডারিংয়ে ব্যাপকভাবে ব্যবহৃত হয়।
যদি এই সমস্ত কাজ না করে?
ঠিক আছে, এটি একটি ভাল প্রশ্ন।
আপনাকে প্রথমে যা করতে হবে তা হ'ল গ্রাফিক্স প্রোফাইলার ব্যবহার করে আপনার অ্যাপ্লিকেশনটির প্রোফাইল করা এবং বাধা কোথায় রয়েছে তা নির্ধারণ করুন। মনে রাখবেন যে বিষয়বস্তুটি রেন্ডার হওয়ার সাথে সাথে বাধা পরিবর্তন হতে পারে। বোতল নেকগুলিও সিপিইউতে চলমান কোডের অংশ হতে পারে তাই আপনার এটিও মাপতে হবে।
এর পরে আপনাকে বাটনেলেকে কিছু অপ্টিমাইজেশন করতে হবে, মনে রাখবেন যে এর কোনও সঠিক উত্তর নেই, এবং অন্যটি হার্ডওয়্যার থেকে আলাদা হবে।
কিছু সাধারণ জিপিইউ অপ্টিমাইজেশন কৌশল:
- শেডারগুলিতে শাখা প্রশস্ত করা এড়িয়ে চলুন।
- উদাহরণস্বরূপ
{VNT}
একই অ্যারে বা {V},{N},{T}
বিভিন্ন অ্যারেতে আন্তঃবিস্তারিত বিভিন্ন ভার্টেক্স কাঠামোগুলি চেষ্টা করুন ।
- সামনে পিছনে দৃশ্যের আঁকুন।
- উদাহরণস্বরূপ কিছু পয়েন্টে জেড-বাফারটি বন্ধ করুন যদি কোনও চিত্রকে জেড পরীক্ষার প্রয়োজন হয় না।
- সংকুচিত টেক্সচার ব্যবহার করুন।
কিছু সাধারণ সিপিইউ অপ্টিমাইজেশন কৌশল:
- ছোট ফাংশনের জন্য ইনলাইন ফাংশন ব্যবহার করুন।
- সম্ভব হলে সিমডি (একক নির্দেশনা একাধিক ডেটা) ব্যবহার করুন।
- ক্যাশে বন্ধুত্বপূর্ণ মেমরি জাম্প এড়ান।
- "সঠিক" পরিমাণের ডেটা সহ ভিবিও ব্যবহার করুন। (আপনার হার্ডওয়ারের উপর নির্ভর করে) তবে সাধারণত কম ড্র কলগুলি আরও ভাল।
তবে আমার বাধা যদি মুলতুবি শেডে থাকে?
এই ক্ষেত্রে, যেহেতু মুলতুবি শেডিং লাইট সম্পর্কে বেশি উদ্বিগ্ন তাই সর্বাধিক সুস্পষ্ট অংশ হ'ল আসল শেডিং গণনাগুলি অনুকূল করা। কিছু বিষয় লক্ষ্য রাখতে হবে:
- রেন্ডার লাইটগুলি যা আসলে চূড়ান্ত চিত্রকে প্রভাবিত করে। অন্য কথায় লাইটগুলি অবদান রাখুন না c আমি পূর্বে উল্লিখিত অবসমন কুলিং ব্যবহার করে এটি কার্যকরভাবে প্রয়োগ করা যেতে পারে।
- এই আলোতে কি স্পেকুলার বা অন্য কোনও উপাদানগুলির প্রয়োজন? হয়তো না.
- এই আলো কি ছায়া ফেলেছে? কিছু লাইটের ছায়া castালাই করার দরকার নেই।
- এই হালকা অবদান কি প্রাক গণনা করা যেতে পারে? যদি এটি চলমান না হয় তবে কিছু দিক প্রাক-গণনা করা যেতে পারে।