Monitörün tazeleme hızından fazla FPS almak neden fark oluşturur?

Merhaba. Sıkça merak edilen ve tartışılan bir konu hakkında ufak bir yazı yazmak istedim.


Oyun oynuyorsunuz, görüntü ayarlarıyla oynarken V-Sync adlı bir ayara denk geldiniz. FPS değerini, monitörün tazeleme hızıyla eşitlediğini öğrendiniz, oldukça da mantıklı geldi. Sonuçta, monitörünüzün tazeleme hızının üstünde FPS almak nasıl bir fark oluşturabilir ki? İşte, bugünün konusu da tam olarak bu.

Daha fazla araştırdığınızda, daha yüksek FPS değerlerinin daha düşük gecikme sağlayacağını, bunun da daha akıcı ve sezgisel bir oyun deneyimi sağlayacağını belirten birkaç yorum görebilirsiniz. Peki tamam da bunun sebebi nedir?

Bu makalede yaygın olarak kullanıldığından 60 Hz’lik bir monitör kullandığımızı varsayıp, FreeSync ve G-Sync gibi işi biraz daha karmaşıklaştırabilecek teknolojileri göz ardı edeceğim.

Öncelikle konuyu daha iyi anlayabilmek için monitörün tazeleme hızını (Hz birimini kullanıyoruz), FPS’in ne olduğunu (Frame per Second, Saniye Başına Kare olarak çevrilebilir) ve monitörün kareleri nasıl çizdiğini anlamamız gerekiyor. Özellikle monitörün tazeleme hızı ile FPS oldukça fazla karıştırılabiliyor.

Bir monitörün tazeleme hızı, basitçe o monitörün saniyede kaç tane kare gösterdiğini gösterir. Bu düzenlidir, yani kareler arasındaki süre, birazdan FPS kavramında göreceğimiz gibi değişiklik göstermez. Basitçe (1 saniye = 1000 milisaniye) 1000/60 = 16,66 hesabıyla her kare arasında 16,66 milisaniye olduğunu görebiliriz.

Konu FPS’e gelince işler değişiyor. Bu noktada monitörden ekran kartına dönüyoruz. Bildiğiniz gibi ekranda gördüğümüz görüntüleri çizen donanım ekran kartıdır. Başta çizilen karelere ve ekran kartının işlem gücüne göre her karenin çizilme süresi değişebilir. Yapılması gereken hesaplamaların zorluğunun artması (örneğin Ray Tracing teknolojisi) karelerin çizilme süresini uzatabilir. Dolayısıyla kareler arasında kesin olarak zamanlar yoktur. Kimisi çok kısa sürerken kimisi çok uzun sürebilir. Sürekli olarak değişen bu süreler neticesinde ekran kartları sabit bir FPS değeri vermek yerine değişken FPS de üretebilir.

Şimdiye kadar tazeleme hızıyla saniye başına üretilen kare sayısı arasındaki farkı anladık. Bir de monitörün kareleri nasıl çizdiğine bakalım.

Monitörler kareleri bir anda göstermez. Satır satır çizerler. Monitörün tazeleme hızıyla FPS arasındaki farkı biliyoruz, bu durumda ekran kartının görüntüyü çizdiği ve kendi içinde pikselleri güncellediği an ile, monitörün o pikselleri gösterme anı aynı anda olmak zorunda değildir. Peki ya daha monitör kareyi yansıtmayı bitiremeden ekran kartı yeni bir kare üretmişse ne olur? Evet, doğru bildiniz. Yırtılma (tearing) denen olay yaşanır. Bu durumu engellemek istersek V-Sync ayarını etkinleştirerek kolayca kurtulabiliriz. V-Sync ayarını açarsak, monitör bütün kareyi çizmeyi tamamladığını ekran kartına bildirecek, daha sonra ekran kartından yeni kareye dair bilgileri alabilecek. Ama şimdi diyorsunuz ki, gecikme (input lag) olmaz mı? Evet, bildiniz. Bu ayar gecikmeye neden oluyor.

Grafik_EkranKarti-Monitor.jpg


Şimdi diyorsunuz ki biz bunları zaten biliyoruz, sen ne anlatıyorsun? Bunun konumuzla ne alakası var? Tamam tamam, biraz uzattım ama önce bunları iyice kavramak gerekiyor. Kabul, buraya kadar biraz sıkıcı geçmiş olabilir. Halen sıkılmamış ve buraya ulaşmışsanız, şimdi konumuza geçebiliriz. Şimdi sizden şu kareyi incelemenizi istiyorum:

SS3.jpg


Şimdi size bir kare gösteriyorum. Dikkatli incelerseniz görüntü pek de normal görünmüyor, ortadan bölünmüş gibi sanki. Aslında yırtılma yaşanmış bir görüntü bu. Monitör henüz kareyi ekrana yansıtmayı tamamlayamamışken ekran kartı görüntüyü güncelledi. Tabii monitör de bu güncel veriyi çizmeye devam etti ve önceki kareyi bırakıp yeni kareyi çizmeye başlamış oldu. Şimdi daha dikkatli bakarsanız, alttaki görüntüde bir adamın bacaklarını görüyoruz. Ekran kartının yeni çizdiği görüntüde adam görünüyor.

Ekran kartı burada iki tane kare üretti. Monitör birinciyi çizemeden ikinci görüntü hazır olduğu için, henüz birinci kareyi tamamlamadan ikinci kareyi ekrana yansıtmaya başladı. Üretilmiş olan iki farklı kareyi ayrı ayrı incelemek isterseniz:
1.

CS_SS1.jpg


2.

CS_SS2.jpg
Peki ya daha düşük FPS almış olsaydık, (ya da V-Sync açmış olsaydık) ne olacaktı? Yeni kareye dair hiçbir bilgiyi henüz edinememiş olacaktık. Elbette, yırtılma olmamış güzel bir kare bizi bekliyor olacaktı ancak adamı görebilmek için monitörün eski veriyle devam edip görüntünün kalan kısmını çizmesini, ardından yeni kareye geçip adamın olduğu yere kadar çizmesini bekleyecektik. Eh, rekabetçi bir oyun oynarken ne kadar hızlı tepki verirseniz o kadar iyi, değil mi?

Buradan anlayacağımız üzere, ne kadar çok FPS alırsak, kareler ne kadar erken çizilirse, o kadar güncel bir görüntü elde ederiz. Buradan yapabileceğimiz basit çıkarım budur. 100 FPS yerine 400 FPS alırsak, yansıyacak görüntü o kadar güncel olacaktır.

Peki ya akıcılık ne âlemde? Tamam, yüksek FPS almak gecikmeyi azaltıyor ama akıcılığı etkiliyor mu? İnsanların belirttiğine göre akıcılıkta artış oluyor. Siz mouse’u hareket ettirdiğinizde bunun etkisi monitöre daha erken yansıyor, bir tuşa basıp bir eylem gerçekleştirdiğinizde bu ekrana daha çabuk yansıyor. Bu da daha iyi bir oyun deneyimi sağlayabiliyor.

Okuduğunuz için teşekkürler, umarım keyifli bir makale olmuştur. Lütfen eksik gördüğünüz veya yanlış bulduğunuz noktaları düzeltin. İyi Sosyal'ler.
 
Merhaba. Sıkça merak edilen ve tartışılan bir konu hakkında ufak bir yazı yazmak istedim.

Oyun oynuyorsunuz, görüntü ayarlarıyla oynarken v-Sync adlı bir ayara denk geldiniz. FPS değerini, monitörün tazeleme hızıyla eşitlediğini öğrendiniz, oldukça da mantıklı geldi. Sonuçta, monitörünüzün tazeleme hızının üstünde FPS almak nasıl bir fark oluşturabilir ki? İşte, bugünün konusu da tam olarak bu.

Daha fazla araştırdığınızda, daha yüksek FPS değerlerinin daha düşük gecikme sağlayacağını, bunun da daha akıcı ve sezgisel bir oyun deneyimi sağlayacağını belirten birkaç yorum görebilirsiniz. Peki tamam da bunun sebebi nedir?

Bu makalede yaygın olarak kullanıldığından 60 Hz’lik bir monitör kullandığımızı varsayıp, FreeSync ve G-Sync gibi işi biraz daha karmaşıklaştırabilecek teknolojileri göz ardı edeceğim.

Öncelikle konuyu daha iyi anlayabilmek için monitörün tazeleme hızını (Hz birimini kullanıyoruz), FPS’in ne olduğunu (frame per second, saniye başına kare olarak çevrilebilir) ve monitörün kareleri nasıl çizdiğini anlamamız gerekiyor. Özellikle monitörün tazeleme hızı ile FPS oldukça fazla karıştırılabiliyor.

Bir monitörün tazeleme hızı, basitçe o monitörün saniyede kaç tane kare gösterdiğini gösterir. Bu düzenlidir, yani kareler arasındaki süre, birazdan FPS kavramında göreceğimiz gibi değişiklik göstermez. Basitçe (1 saniye = 1000 milisaniye) 1000/60 = 16, 66 hesabıyla her kare arasında 16, 66 milisaniye olduğunu görebiliriz.

Konu FPS’e gelince işler değişiyor. Bu noktada monitörden ekran kartına dönüyoruz. Bildiğiniz gibi ekranda gördüğümüz görüntüleri çizen donanım ekran kartıdır. Başta çizilen karelere ve ekran kartının işlem gücüne göre her karenin çizilme süresi değişebilir. Yapılması gereken hesaplamaların zorluğunun artması (örneğin Ray Tracing teknolojisi) karelerin çizilme süresini uzatabilir. Dolayısıyla kareler arasında kesin olarak zamanlar yoktur. Kimisi çok kısa sürerken kimisi çok uzun sürebilir. Sürekli olarak değişen bu süreler neticesinde ekran kartları sabit bir FPS değeri vermek yerine değişken FPS'de üretebilir.

Şimdiye kadar tazeleme hızıyla saniye başına üretilen kare sayısı arasındaki farkı anladık. Bir de monitörün kareleri nasıl çizdiğine bakalım.

Monitörler kareleri bir anda göstermez. Satır satır çizerler. Monitörün tazeleme hızıyla FPS arasındaki farkı biliyoruz, bu durumda ekran kartının görüntüyü çizdiği ve kendi içinde pikselleri güncellediği an ile, monitörün o pikselleri gösterme anı aynı anda olmak zorunda değildir. Peki ya daha monitör kareyi yansıtmayı bitiremeden ekran kartı yeni bir kare üretmişse ne olur? Evet, doğru bildiniz. Yırtılma (tearing) denen olay yaşanır. Bu durumu engellemek istersek v-Sync ayarını etkinleştirerek kolayca kurtulabiliriz. V-Sync ayarını açarsak, monitör bütün kareyi çizmeyi tamamladığını ekran kartına bildirecek, daha sonra ekran kartından yeni kareye dair bilgileri alabilecek. Ama şimdi diyorsunuz ki, gecikme (input lag) olmaz mı? Evet, bildiniz. Bu ayar gecikmeye neden oluyor.

Eki Görüntüle 759549

Şimdi diyorsunuz ki biz bunları zaten biliyoruz, sen ne anlatıyorsun? Bunun konumuzla ne alakası var? Tamam tamam, biraz uzattım ama önce bunları iyice kavramak gerekiyor. Kabul, buraya kadar biraz sıkıcı geçmiş olabilir. Halen sıkılmamış ve buraya ulaşmışsanız, şimdi konumuza geçebiliriz. Şimdi sizden şu kareyi incelemenizi istiyorum:

Eki Görüntüle 759554

Şimdi size bir kare gösteriyorum. Dikkatli incelerseniz görüntü pek de normal görünmüyor, ortadan bölünmüş gibi sanki. Aslında yırtılma yaşanmış bir görüntü bu. Monitör henüz kareyi ekrana yansıtmayı tamamlayamamışken ekran kartı görüntüyü güncelledi. Tabii monitör de bu güncel veriyi çizmeye devam etti ve önceki kareyi bırakıp yeni kareyi çizmeye başlamış oldu. Şimdi daha dikkatli bakarsanız, alttaki görüntüde bir adamın bacaklarını görüyoruz. Ekran kartının yeni çizdiği görüntüde adam görünüyor.

Ekran kartı burada iki tane kare üretti. Monitör birinciyi çizemeden ikinci görüntü hazır olduğu için, henüz birinci kareyi tamamlamadan ikinci kareyi ekrana yansıtmaya başladı. Üretilmiş olan iki farklı kareyi ayrı ayrı incelemek isterseniz:
Peki ya daha düşük FPS almış olsaydık, (ya da v-Sync açmış olsaydık) ne olacaktı? Yeni kareye dair hiçbir bilgiyi henüz edinememiş olacaktık. Elbette, yırtılma olmamış güzel bir kare bizi bekliyor olacaktı ancak adamı görebilmek için monitörün eski veriyle devam edip görüntünün kalan kısmını çizmesini, ardından yeni kareye geçip adamın olduğu yere kadar çizmesini bekleyecektik. Eh, rekabetçi bir oyun oynarken ne kadar hızlı tepki verirseniz o kadar iyi, değil mi?

Buradan anlayacağımız üzere, ne kadar çok FPS alırsak, kareler ne kadar erken çizilirse, o kadar güncel bir görüntü elde ederiz. Buradan yapabileceğimiz basit çıkarım budur. 100 FPS yerine 400 FPS alırsak, yansıyacak görüntü o kadar güncel olacaktır.

Peki ya akıcılık ne âlemde? Tamam, yüksek FPS almak gecikmeyi azaltıyor ama akıcılığı etkiliyor mu? İnsanların belirttiğine göre akıcılıkta artış oluyor. Siz mouse’u hareket ettirdiğinizde bunun etkisi monitöre daha erken yansıyor, bir tuşa basıp bir eylem gerçekleştirdiğinizde bu ekrana daha çabuk yansıyor. Bu da daha iyi bir oyun deneyimi sağlayabiliyor.

Okuduğunuz için teşekkürler, umarım keyifli bir makale olmuştur. Lütfen eksik gördüğünüz veya yanlış bulduğunuz noktaları düzeltin. İyi Sosyal'ler.

Mükemmel. Kusura bakma ifade yasağım var.
Gerçekten bilgilendirici olmuş.
 

Geri
Yukarı