انواع تکنیکهای ضدشکست
مولتی سمپلینگ: مولتی سمپلینگ (Multisampling) یا MSAA نتیجه قابل قبولی به دست میدهد، اما آن هزینه گزاف(SSAA Supersampling) را تحمیل نمیکند. این تکنیک اصولیترین و متداولترین تکنیک ضدشکست در بازیهای رایانهای است.
نمونهبرداری پوششی: نمونهبرداری پوششی (Coverage Sampling) یا CSAA، نمونه اقتصادیتر MSAA است که از سوی انویدیا ارائه شده است.
کاستوم ـ فیلتر: کاستوم فیلتر (Custom-Filter) یا CFAA، نمونه اقتصادیتر MSAA است که از سوی AMD ارائه شده است.
تقریب فوری: به جای کاوش مدلهای سه بعدی (در MSAA لبه پولیگونها مورد واکاوی قرار میگیرد)، تقریب فوری (Fast Approximate) یا FXAA، فیلتری است که پس از پردازش اعمال میشود. یعنی پس از اینکه صحنه رندر شد، به تمام آن اعمال میشود. از مزایای این تکنیک، سوای کاربردی بودنش، اعمال افکت روی بافتهای داخلی است که MSAA از تشخیصشان عاجز است.
مورفولوژیک: تکنیک مورفولوژیک (Morphological) یا MLAA نیز که با کارتهای AMD ارائه میشود، مرحله رندر را رد کرده و با پردازش تصویر، شکستگیها را تشخیص داده و مرتفع میکند. نیکولاس واینینگ میگوید: «ضدشکست مورفولوژیک، مورفولوژی یا ریخت (الگوها) دندانههای لبهها را مدنظر قرار داده، راهی برای بهبود شکستها پیدا میکند که به چشم خوش بیاید. تکنیک مورفولوژیک برای رسیدن به این مهم با جداسازی لبهها و دندانهها به دستههای کوچکی از عملگرهای ظاهری مانند بلوکهای تتریس آغاز میکند. سپس از نوع خاصی آمیختگی (Blending) برای هر یک از این بلوکهای تتریس استفاده میکند.» MLAA را میتوان از پنلکنترل Catalyst فعال کرد.
تکنیک Enhanced Subpixel Morphological یا مورفولوژیک با زیرپیکسلهای تقویتشده که به اختصار SMAA خوانده میشود نیز از فنهای پسا ـ پردازش است. آن را به عنوان ترکیبی از MLAA، MASS و SSAA توصیف میکنند.
تکنیک موقتی: تکنیک موقتی (Temporal) یا TXAA که بهوسیله کارتهای گرافیکی کپلر انویدیا پشتیبانی میشود، MSAA را با دیگر فیلترها ترکیب کرده و افکت کرال را که روی لبهها ایجاد میشود (که رژه رفتن مورچهها را تداعی میکند) از بین میبرد.
توضیحی دیگر از واینینگ میآوریم: «فرض این است که به انتظار ما ظاهر فریمها باید فریم به فریم تغییر کند. جنبش چندان زیادی وجود ندارد، میتوانیم با استفاده از دادههای اضافی فریم پیشین، آن را با اطلاعات در دست ادغام کرده، ضدشکست را صورت دهیم.»
مولتی ـ فریم: مولتی ـ فریم (Multi-Frame) یا MFAA که جدیدترین فن ضد شکست انویدیاست و به کارتهای گرافیک Maxwell منحصر است، برخلاف MSAA که بر اساس الگوهای معینی نمونه میگیرد، راه را برای الگوهای نمونهبرداری قابل برنامهریزی باز گذاشته است.
معنای ارقام چیست؟
تنظیمات ضدشکست تقریبا همیشه با ارقام همراه است مانند 2x، 4x و 8x این ارقام تعداد نمونههای گرفته شده را تعیین میکند و اصولا هر چه این رقم بالاتر باشد، ضدشکست دقیقتر و از نظر محاسباتی سنگینتر خواهد بود. سپس به مورد Q میرسیم. نمونهبرداری پوششی یا CSAA برای دستیابی به کیفیتی بهتر یا برابر با MSAA (سوپرسمپلینگ)، اما با نمونه رنگهای کمتر ساخته شده است. پس 8xCSAA در حقیقت به معنی چهار نمونه رنگ است. چهار نمونه دیگر، نمونههای پوششی هستند.
عملکرد
سایت پیسی گیمر برای سنجش عملکرد تکنیکهای ضدشکست MSAA، FXAA و TXAA از ابزار بنچمارک بازی Batman: Arkham City استفاده کرده است. آنچنان که انتظار میرفت، بر اساس نتایج، FXAA کمترین فشار را به سیستم وارد میکند و این در حالی است که MSAA و TXAA افت فریم قابل توجهی را در مقابل حالت فاقد ضد شکست موجب شدند. در حالت فاقد ضدشکست، متوسط مقیاس فریم 161 بر ثانیه بوده، در حالت 8x MSAA، 84،در حالت (FXAA (high، 154 و با تکنیک (TXAA (high، 98 فریم بر ثانیه.
اگر بخواهیم تکنیکها را از بهترین مورد فهرستوار بیان کنیم (بدون در نظر گرفتن فناوریهای انویدیا و AMD)، چنین فهرستی خواهیم داشت: TXAA، CFAA، MSAA، MLAA، FXAA البته با توجه به اینکه کدام بازی را اجرا کنید، ممکن است FXAA یا MLAA به نظرتان بهتر از MSAA بیاید که تصمیمگیریاش مستلزم امتحان دو تکنیک است. البته اگر افت فریم اذیتتان کرد، طبعا بهترین گزینه FXAA خواهد بود.
تنظیمات ضدشکست تحمیلی
براساس یک نظریه، تنظیمات گرافیکی داخل بازی نباید چندان اهمیتی داشته باشد. هر گاه دلتان بخواهد میتوانید پنل تنظیم انویدیا یا AMD را باز کرده و تنظیمات دلخواه خود را به بازی تحمیل کنید. حتی اگر دلتان خواست میتوانید ضدشکست را روی 32x CSAA تنظیم کنید. متاسفانه این نظریه همیشه حقیقت ندارد. با اینکه تنظیمات دلخواه بازیکن، قابل تحمیل به همه بازیهاست، بندرت شاهد عملکرد موثر آن هستیم. دو تا از جدیدترین بازیهایی که سایت پیسی گیمر این کار را رویشان انجام داده، Shadow of Mordor و Defense Grid 2 بود که هیچکدام تنظیمات تحمیلی را اجرا نکردند. این سایت از بین ده عنوانی که تست کرده، فقط در دو عنوان Left4Dead 2 و Half-Life 2: Lost Coast شاهد اثرگذاری تنظیمات خود بوده است.
واینینگ میگوید: «اغلب عمل نکردن تنظیمات تحمیلی به دلیل رندر معوق است که بسیاری از قوانین تکنیکهای ضدشکست را زیر پا میگذارد.» الکس آستین نیز مدعی است بعضی از تکنیکهایش در حالت تنظیمات تحمیلی کار نمیکند. سادهتر بگوییم، باید آزمون و خطا کرد. تمام تنظیمات ضدشکست در منوی تنظیمات بازی را غیرفعال کنید، تنظیمات تحمیلی دلخواه را به پنل کنترل داده و بازی را مجدد اجرا کنید. در این مرحله راحت میتوان اجرا یا اجرا نکردن تنظیمات را تشخیص داد.
تجربه ثابت کرده تکنیک AMD، یعنی MLAA معمولا موثر عمل میکند. البته ذکر این نکته ضروری است که MLAA یک فیلتر پساپردازشی است و به همه موارد تصویر اعمال میشود. یعنی تکنیک مورد نظر در عین اینکه لبههای تیز و دندانهدار را نرم کرده و ظاهر کلی را بهبود میبخشد، جزئیات دیگر تصویر مانند متنها را هم افکت داده و ممکن است موجب ناخوانایی بعضی موارد شود.
فیلتر 2 و 3 خطی
فیلتر بافتها چگونگی نمایش یک تکسچر ـ یک تصویر دوبعدی (و دیگر دادهها) ـ را در مدلی سهبعدی تعیین میکند. یک پیکسل در مدلی سهبعدی، لزوما با یک پیکسل خاص در تکسچرش رابطه مستقیم ندارد (موردی که به اختصار تکسل خواهیم نامید)، زیرا مدل را میتوان از هر زاویه و فاصلهای تماشا کرد. بنابراین اگر بخواهیم رنگ یک پیکسل را متوجه شویم، آن نقطه از بافت را که پیکسل با آن ارتباط دارد یافته، چند نمونه از تکسلهای نزدیک گرفته و میانگینشان را میگیریم. سادهترین متد فیلترینگ تکسچرها فیلترینگ دوخطی (bilinear) است. وقتی یک پیکسل بین دو تکسل قرار بگیرد، این متد با نمونه گرفتن از چهار پیکسل نزدیک، رنگش را پیدا میکند.
حالا به میپمپینگ میرسیم و مشکل ریشهدار میشود. فرض بگیریم زمینی که روی آن ایستادهایم پوشیده از بتون ترکخورده است. اگر پیش پا را نگاه کنیم، یک بافت بتونی بزرگ و پرجزئیات میبینیم. سپس زاویه دوربین را به سمت افق تنظیم میکنیم. قطعا منطقی نیست برای بتونهای دوردست که در حد چند پیکسل دیده میشوند از یک پیکسل رزولوشن بالا نمونه بگیریم. به منظور بهبود عملکرد (و جلوگیری از ایجاد شکست)، در عین حال حفظ کیفیت، بازی از بافتی با رزولوشن پایینتر ـ موسوم به میپمپ ـ برای اشیای دور استفاده میکند.
وقتی به جاده بتونی نگاه میکنیم، نباید متوجه شویم که کجا یک میپمپ پایان یافته و دیگری از کجا آغاز شده، وگرنه تناقض بین کیفیت بافت توی ذوق میزند. فیلتر دوخطی میپمپها را ادغام نمیکند و این تناقض به چشم میآید. اینجاست که از فیلتر سهخطی (trilinear) استفاده میشود. فیلتر سهخطی با نمونهبرداری از میپمپهایی که دو به دو به هم متصلند، ترکیب آنها را تلفیق کرده و سیری یکنواخت را القا میکند.
فیلتر آنیسوتروپیک
فیلتر سهخطی کمک زیادی میکند، اما باز هم ظاهر بافتها کدر است. اینجاست که دست به دامن فیلترینگ آنیسوتروپیک میشویم؛ فیلتری که کیفیت بافتها را در زوایای اریب تا حد چشمگیری افزایش میدهد.
برای درک چرایی آن ، یک پنجره چهارگوش را در نظر بگیرید ـ پیکسلی از یک مدل سهبعدی ـ که پشتش دیواری آجری بهعنوان بافت قرار دارد. نور از پنجره میتابد و شکلی مربعمانند روی دیوار میسازد. این قسمت نمونه ما برای این پیکسل است که از هر طرف اندازهای برابر دارد. در فیلترینگ دوخطی و سهخطی، بافتها اینگونه نمونهگیری میشود.
حالا اگر مدل نیز به حالت عمود جلوی چشم ما قد علم کند، همهچیز روبه راه خواهد بود. اما فرض کنید مدل کمی به سمت مقابل ما کج شود. اگر باز هم یک مربع نمونهگیری شود، خطا رفتهایم و همهچیز حالتی تار به خود میگیرد. حالا فرض کنید بافت دیوار آجری به سمت مقابل پنجره کج شود. این بار نور به یک ذوزنقه طولانی و باریک تبدیل میشود که بیشتر فضای عمودی بافت را میپوشاند تا فضای افقی آن را. برای این پیکسل باید این قسمت را نمونهگیری کنیم. کم وبیش میتوان گفت فیلتر آنیسوتروپیک این مورد را مدنظر دارد. این فیلتر میپمپها را براساس جهتی که از آن به شیء سهبعدی مینگریم ارزیابی و جهتدهی میکند. مانند مثال دیواری که کج شد. هفته آینده قسمت آخر راهنمای تنظیمات گرافیکی بازیها را در همین صفحه از کلیک بخوانید.
سیاوش شهبازی / کلیک (ضمیمه یکشنبه روزنامه جام جم)
در یادداشتی اختصاصی برای جام جم آنلاین مطرح شد
یک کارشناس روابط بینالملل در گفتگو با جامجمآنلاین مطرح کرد
در گفتگو با جام جم آنلاین مطرح شد
در گفتگو با جام جم آنلاین مطرح شد