Skip to content

سیستم ضد یویو (Anti Yo-Yo System)

یکی از آزاردهنده‌ترین مشکلات در سیستم‌های مقیاس‌بندی پویا، اثر یویو (Yo-Yo Effect) (یا پینگ پنگ کیفیت) است.

مشکل اصلی

بدون کنترل هوشمند، سیستم در یک حلقه بی‌نهایت گیر می‌افتد:
۱. یک صحنه سنگین باعث افت FPS می‌شود.
۲. افزونه کیفیت گرافیک را کاهش می‌دهد (مثلاً وضوح را کم می‌کند).
۳. بار کاری کاهش می‌یابد و FPS به بالای خط پایه (Baseline) می‌رسد.
۴. افزونه متوجه می‌شود که حاشیه عملکرد (Performance Headroom) دارد و کیفیت گرافیک را به حداکثر بازمی‌گرداند.
۵. FPS دوباره افت می‌کند. این چرخه تکرار می‌شود.

در نتیجه، بازیکن دچار چشمک‌زدن مداوم کیفیت (Quality flickering) می‌شود. سایه‌ها دائماً ظاهر و ناپدید می‌شوند و تصویر هر ثانیه تار و واضح می‌شود.

راه‌حل WebAP: جریمه (Penalty Lockout)

ما با پیاده‌سازی مفهوم Penalty Lockout که بر اساس دو پارامتر در تنظیمات افزونه ساخته شده است، این مشکل را به‌طور کامل ریشه‌کن کرده‌ایم.

اگر افزونه کیفیت گرافیک را افزایش دهد، یک تایمر پنهان — Detection Window (مثلاً ۱۵ ثانیه) — شروع به کار می‌کند. در طول این دوره، Indexer به‌دقت پایداری فریم را زیر نظر می‌گیرد.

اگر FPS در طول این پنجره زمانی به‌طور ناگهانی افت کند، سیستم یک نتیجه‌گیری قطعی می‌کند: «بهبود گرافیک قبلی یک اشتباه بود. دستگاه نمی‌تواند این سطح را در درازمدت حفظ کند.»

جریمه اعمال می‌شود:
۱. افزونه بلافاصله کیفیت را دوباره کاهش می‌دهد.
۲. یک Penalty Lockout Duration سخت‌گیرانه (مثلاً ۶۰ ثانیه) اعمال می‌شود.
۳. برای این یک دقیقه، سیستم به‌طور قطع از تلاش برای افزایش کیفیت گرافیک منع می‌شود، حتی اگر FPS بالا برود و پردازنده بیکار شود.

قفل جلسه (Session Lock)

اگر دینامیک بازی شما دارای امواج افزایش بار است و ترجیح می‌دهید پس از اولین افت، کیفیت هرگز بازنگردد، می‌توانید مقدار بسیار بزرگی (مثلاً 600 برای ۱۰ دقیقه یا 3600 برای یک ساعت) در فیلد Penalty Lockout Duration وارد کنید. این کار به‌طور مؤثری گرافیک را در یک سطح پایین ثابت تا پایان جلسه بازی قفل می‌کند.

اولویت روانی (Fluency Priority)

این جریمه فقط و فقط تلاش‌ها برای بهبود رندرینگ را مسدود می‌کند. اگر بازیکن وارد صحنه بسیار سنگین‌تری شود و FPS به زیر آستانه بحرانی سقوط کند، افزونه هنوز هم می‌تواند در مواقع اضطراری کیفیت را کاهش دهد. سیستم همیشه روان بودن گیم‌پلی را بر جلوه‌های بصری ترجیح می‌دهد.