আমি জিজ্ঞাসা করতে চাই যে Effect
এক্সএনএ-তে পরামিতিগুলি নির্ধারণের জন্য সর্বোত্তম অনুশীলন আছে কি না। বা অন্য কথায়, আমি ফোন করলে ঠিক কী ঘটে pass.Apply()
। আমি একাধিক পরিস্থিতি কল্পনা করতে পারি:
- প্রতিটি সময়
Apply
বলা হয়, সমস্ত ইফেক্ট প্যারামিটারগুলি জিপিইউতে স্থানান্তরিত হয় এবং এর জন্য এটির কোনও প্রকৃত প্রভাব নেই যে আমি কতবার প্যারামিটার সেট করি। - প্রতিটি সময়
Apply
বলা হয়, কেবলমাত্র পুনরায় সেট করা প্যারামিটারগুলি স্থানান্তরিত হয়। সুতরাং সেট-অপারেশনগুলি ক্যাশে করা যা আসলে কোনও নতুন মান সেট করে না তা এড়ানো উচিত। - প্রতিটি সময়
Apply
বলা হয়, পরিবর্তিত হয়ে যাওয়া প্যারামিটারগুলি কেবল স্থানান্তরিত হয়। সুতরাং সেট-অপারেশনগুলি ক্যাচিং অকেজো। - এই পুরো প্রশ্নগুলি বুটহীন কারণ কোনওভাবেই উল্লেখ করা উপায়গুলির গেমের পারফরম্যান্সে কোনও উল্লেখযোগ্য প্রভাব নেই।
সুতরাং চূড়ান্ত প্রশ্ন: সেট ক্রিয়াকলাপের কিছু ক্যাশে প্রয়োগ করা কি কার্যকর:
private Matrix _world;
public Matrix World
{
get{ return _world; }
set
{
if (value == world) return;
_effect.Parameters["xWorld"].SetValue(value);
_world = value;
}
}
দলিল ধন্যবাদ আপনাকে.