بیایید صادق باشیم؛ چند نرخ فریم بر ثانیه کار شما را راه میاندازد؟
امروز در لیون تک قصد داریم به یکی از بزرگترین سوالات مطرح شده در دنیای گیمینگ و میان گیمرها، پاسخ جامعی بدهیم؛ به چند فریم بر ثانیه نیاز دارید؟ یا با چند فریم بر ثانیه کار شما راه میافتد؟ آیا دریافت نرخ فریم بالاتر از نرخ بروزرسانی مانیتور یا تلویزیون، کار درستی است یا این دو باید با یکدیگر برابر باشند؟ آیا 500 فریم بر ثانیه ممکن است؟ 600 چطور؟
برای دادن پاسخ کامل به این سوال مهم، ابتدا باید کمی درباره تعامل و کار میان پردازندههای گرافیکی و صفحه نمایش صحبت کنیم. GPU و نمایشگر چگونه فریمها را به چشمان ما میرسانند و فناوریهایی مانند Vsync (پیش از این در لیون تک درباره وی سینک صحبت کردیم) در این میان چگونه روی تصویر نهایی دخالت میکنند؟
یکی از موارد مهم درباره بیشتر بودن نرخ فریم بازی نسبت به نرخ بروزرسانی نمایشگر، تجربه سریعتر و تُندتر در بازیهای ویدیویی است. این بدان معنی است که تأخیر ورودی یا همان اینپوت لگ (Input Lag) کاهش مییابد و کنترل شما روی بازی بیشتر میشود. این یک پاسخ کوتاه برای کسانی بود که صبر ندارند! حالا بیایید کمی دقیقتر توضیح دهیم.
تصور کنید مانیتوری در اختیار داریم که نرخ بروزرسانی آن 60 هرتز است. به بیان دیگر، این مانیتور در هر ثانیه، 60 بار (یا در هر 16.7 میلی ثانیه) تصویر را بروزرسانی یا تازه میکند. زمانی که یک بازی را اجرا میکنیم، هیچ تضمینی وجود ندارد که پردازنده گرافیکی بتواند تمام فریمها را دقیقاً با نرخ 16.7 میلی ثانیه رندر کند. برخی اوقات ممکن است این نرخ به 20 میلی ثانیه برسد، در دیگر مواقع به 15 میلی ثانیه یا حتی 8 میلی ثانیه دست پیدا کند. رندر شدن یک بازی توسط یک پردازنده گرافیکی، ذاتاً روندی متغیر دارد.
با این نرخ رندر متغیر، یک انتخاب وجود دارد که چگونه هر فریم رندر شده توسط GPU، به دست نمایشگر برسد. GPU میتواند هر زمانی که یک فریم به صورت کامل رندر شد، آن را برای نمایشگر بفرستد که عموماً به آن اجرای بازی با حالت «Vsync غیر فعال» میگویند. در طرف دیگر، GPU میتواند فریم را زمانی برای نمایشگر بفرستد که مانیتور برای بروزرسانی یا تازهسازی آمادگی دارد. به این حالت در زمان اجرای بازی، «Vsync فعال» میگویند.
استفاده از روش اول که وی سینک در آن غیر فعال است، پدیدهای به نام پارگی تصویر یا Screen Tearing را در هنگام تجربه بازیهای ویدیویی ایجاد میکند. این پدیده به این دلیل رخ میدهد که نمایشگر نمیتواند تمام تصویر را به صورت آنی بروزرسانی کند و به جای آن، تصویر را خط به خط و از بالا به پایین تازه میسازد. در این پروسه، ممکن است یک فریم جدید توسط GPU آماده شود و از آنجایی که از وی سینک استفاده نمیکنیم، فریم به سرعت به مانیتور منتقل میشود. در نتیجه، میان یک عمل تازهسازی توسط مانیتور، نمایشگر داده جدیدی را دریافت میکند و مجبور است این داده را به مخاطب نشان دهد. در انتها تصویر از وسط، بالا یا پایین نصف میشود و فریم قدیم و جدید در یک آن به شکل زشت و ناپسندی نمایش داده میشوند.
طبق محتوایی که به نمایش درمیآید، این شکاف و تقسیم صفحه میان فریمهای جدید و قدیم، به پارگی تصویر تبدیل یا به شکل یک خط به صورت افقی دیده میشوند. معمولاً این پدیده در صحنههایی با ریتم سریع قابل رؤیت هستند؛ جایی که تفاوت بسیاری میان فریم قبلی و فریم جدید وجود دارد. با این که غیر فعال بودن Vsync ممکن است به پدیده پارگی تصویر منجر شود، اما حداقل یک برتری دارد؛ در این حالت، فریم به محض رندر شدن برای مانیتور فرستاده میشود و تأخیر میان GPU و نمایشگر به حداقل میزان خود میرسد.
راه دیگر برای نمایش تصویر، حالت Vsync فعال است. در این حالت، GPU به جای فرستادن آنی فریم رندر شده به نمایشگر، هر فریم رندر شده را داخل یک بافر قرار میدهد. اولین بافر برای فریمی که روی آن کار میشود و دومین بافر برای فریمی که در آن لحظه نمایش داده میشود، مورد استفاده قرار میگیرد. در زمان رفرش یا بروزرسانی، بافر دوم به هیچ عنوان آپدیت نمیشود و تصویر تنها دادههای یک فریم کاملاً رندر شده را به نمایش میگذارد. در نتیجه، اثری از پارگی تصویر و آپدیت شدن بافر در میانه پروسه بروزرسانی تصویر نخواهد بود.
تنها نقطهای که بافر دوم آپدیت میشود، میان بروزرسانیهای تصویر است. برای اطمینان از رخ دادن این اتفاق، GPU پس از رندر کردن کامل یک فریم، صبر میکند و منتظر یک دوره بروزرسانی نمایشگر میماند. سپس جای بافرها با هم عوض میشود، رندر یک فریم جدید آغاز میگردد و این پروسه روی دور تکرار قرار میگیرد. برخی مواقع پیش از این که فریم به صفحه نمایش برسد، این پروسه شامل چندین بافر میشود اما این توضیح، کارکرد کلی وی سینک را تعریف میکند.
دو مشکل بزرگ با وی سینک وجود دارد؛ اول این که اگر نرخ رندر پردازنده گرافیکی پایینتر از نرخ بروزرسانی نمایشگر باشد و نتواند خود را به سرعت آن برساند (مثلاً توانایی رندر 40 فریم بر ثانیه با یک مانیتور 60 هرتز)، GPU رندر یک فریم کامل را در زمان معین انجام نمیدهد تا به ابتدای روند بروزرسانی مانیتور برسد. در این حالت چه اتفاقی رخ میدهد؟ آن فریم عقب افتاده و جا مانده، تکرار میشود! این اتفاق پدیدهای به نام سکته یا Stutter را به وجود میآورد؛ چرا که برخی از فریمها تنها یک بار و دیگر فریمها، دو بار نمایش داده میشوند.
مشکل دوم زمانی آغاز میشود که پردازنده گرافیکی شما بسیار سریع و قدرتمند باشد و به راحتی بتواند یک فریم کامل را در بازه زمانی نرخ بروزرسانی رندر کند. مثلاً فرض کنید GPU شما میتواند یک بازی را 200 فریم بر ثانیه رندر کند و در هر 5 میلی ثانیه، یک فریم کامل را به نمایشگر تحویل دهد. در این شرایط اگر از یک نمایشگر 60 هرتز معمولی که بازه زمانی بروزرسانی آن 16.7 میلی ثانیه است استفاده کنید، مشکل ایجاد میشود!
با فعال بودن Vsync، پردازنده گرافیکی شما فریم بعدی را با نرخ 5 میلی ثانیه رندر میکند اما 11.7 میلی ثانیه برای فرستادن آن به بافر دوم منتظر میماند و در واقع معطل نرخ بروزرسانی نمایشگر 60 هرتز میشود! به همین دلیل است که با فعال بودن وی سینک، بیشترین نرخ فریمی که دریافت میکنید، مساوی است با بیشترین نرخ بروزرسانی نمایشگر شما! چرا؟ به این دلیل که وی سینک اساساً یک قفل بزرگ به GPU متصل کرده و به آن دستور میدهد که فراتر از نرخ بروزرسانی مانیتور کار نکند.
با این که فعال بودن Vsync با نرخ فریم بالاتر از Refresh Rate آنچنان خوب و ایدهآل به نظر نمیرسد اما بسیاری از کاربران طرفدار آن هستند! بسیاری از کاربران میگویند که محدود شدن عملکرد کارت گرافیک به نرخ بروزرسانی نمایشگر خوب است چرا که فریمهای اضافی به دلیل ناتوانی مانیتور به هدر میروند و حتی امکان رخ دادن پدیدههایی مانند پارگی تصویر نیز وجود دارد. برخی دیگر میگویند با استفاده از وی سینک، در مصرف انرژی کمک میشود و GPU لازم نیست با رندر فریمهای اضافی، عملکرد حداکثری خود را ارائه دهد.
این موارد به صورت کلی غلط نیستند اما بدون شک دقیق به شمار نمیروند. یکی از مواردی که باید اینجا در نظر داشت، نادیده گرفتن زمانی است که ورودیها پردازش و کارکرد آنها درون صفحه نمایشگر مشاهده میشوند. 16.7 میلی ثانیهای که پیش از این درباره آن صحبت کردیم، تنها برای زمانی است که بخواهیم میزان تأخیر خالص میان GPU و نمایشگر را ارزیابی کنیم. اما اگر ورودیها و متغیرهای دیگر، مانند موس، کیبورد، زمان پردازش CPU، اینپوت لگ نمایشگر و… را نیز به این معادله اضافه نماییم، تأخیر میان ورودی و تازهسازی نمایشگر به راحتی به بیش از 50 میلی ثانیه میرسد.
حالا بیایید همین دیاگرام و توضیحات را برای حالت غیر فعال بودن وی سینک، نمایشگر 60 هرتز و نرخ فریم 200 بر ثانیه بررسی کنیم. وقتی وی سینک در کار نباشد، پردازنده گرافیکی بدون توجه به توانایی نمایشگر، حداکثر عملکرد خود را ارائه داده و بیشترین فریم ممکن را رندر میکند. با نرخ فریم 200 بر ثانیه، GPU هر 5 میلی ثانیه یکبار برای نمایشگر شما فریم کاملی میفرستد. در این حالت با وجود احتمال رخ دادن پدیده استاتر، میزان تأخیر فریمی که از GPU به نمایشگر منتقل میشود، کاهش مییابد و از 16.7 میلی ثانیه به تنها 5 میلی ثانیه میرسد؛ هر چند که شما باز هم در حال تجربه بازی با نرخ فریم 60 بر ثانیه هستید.
این موضوع برای مانیتورهایی با نرخ بروزرسانی بالاتر نیز صادق است. به عنوان مثال، اگر یک مانیتور 144 هرتز در اختیار داشته باشید، در هر ثانیه 144 فریم را دریافت میکنید و طبیعتاً تصویر نرمتر، سریعتر و دلپذیرتری را شاهد خواهید بود. اما اجرای بازی با نرخ فریم 200 بر ثانیه با همین مانیتور 144 هرتز نیز به جای تأخیر 7 میلی ثانیهای، تأخیر خالص 5 میلی ثانیهای را به شما ارائه خواهد داد.
از آنجایی که در این مطلب در حال صحبت درباره فاصلههای زمانی میلی ثانیهای و بسیار کوچک هستیم، شاید از خود بپرسید که آیا این تفاوتهای به ظاهر ناچیز، تأثیر خاص و قابل لمسی را روی تجربه ما (از نظر دیداری و کنترل) خواهد گذاشت؟ این تأثیر بنا به عنوانی که مشغول به تجربه آن هستید، متفاوت حس میشود. به عنوان مثال، زمانی که در حال تجربه بازی Counter-Strike: Global Offensive با نرخ فریم 400 بر ثانیه روی یک نمایشگر 60 هرتز هستید (وی سینک غیر فعال)، زمان تأخیر میان GPU و نمایشگر تنها به 2.5 میلی ثانیه میرسد. این موضوع سبب میگردد که گیمپلی سریع Counter-Strike: Global Offensive به شدت پاسخگو (Responsive) شده و حرکات شما با موس و کیبورد، بدون هیچ تأخیر خاصی اجرا شود.
در این حالت شما در نهایت در حال تماشای یک محتوای 60 فریم بر ثانیه هستید و تصویر به هیچ عنوان به نرمی و تمیزی نمایشگرهای 144 و 240 هرتزی به نظر نمیرسد اما تأثیری که با کاهش چشمگیر اینپوت لگ (بیش از 7 برابر) به وجود میآید، گیمپلی نرمتر، کنترل دقیقتر و در نهایت سطح بازی بهتر و حرفهای تری را برای شما به ارمغان میآورد. البته بد نیست توضیح دهیم که فناوری Vsync در این چند سال اخیر با تکاملها و بهبودهایی مواجه شده و نسخههای تکامل یافتهای مانند Fast Sync (از انویدیا) و Enhanced Sync (از AMD) به سازگار کردن هر چه بیشتر نرخ فریم و نرخ بروزرسانی نمایشگر کمکهای بسیاری کردهاند. درباره این دو نسخه تکامل یافته، در «تک پدیا وی سینک» بیشتر صحبت کردهایم.
همچنین از فناوریهای مدرن G-Sync و FreeSync نیز غافل نشوید که مشکلات قدیمی مربوط به هماهنگی نرخ فریم و نرخ بروزرسانی را کاملاً برطرف ساختهاند. برای دریافت اطلاعات بیشتر درباره این دو فناوری مهم در دوره کنونی، پیشنهاد میکنیم مطلب «تک پدیا: فناوریهای G-Sync و FreeSync چه معنایی دارند؟» را مطالعه نمایید.
در انتهای این مطلب امیدوار هستیم حداقل به برخی از مهمترین سوالات شما درباره نرخ فریم و هماهنگی آن با نرخ بروزرسانی نمایشگر پاسخ داده باشیم. دریافت بهترین تصویر و داشتن بهترین تجربه گیمپلی، مهمترین نکتهای است که باید آن را به خاطر بسپاریم. با کسب دانش کافی و تجربه راهکارهای مختلف، میتوانیم ایدهآلترین تجربه ممکن را با توجه به سخت افزاری که در اختیار داریم، دریافت نماییم.
نظر شما در مورد بحث نرخ فریم و هماهنگی آن با نرخ بروزرسانی نمایشگر چیست؟ با توجه به سخت افزاری که در اختیار دارید، چند فریم بر ثانیه کار شما را راه میاندازد؟ نظرات خوب خود را با ما به اشتراک بگذارید.