Hocam harika anlatmışsınız teşekkür ederim ancak. 100-120 civarı FPS'in 70 FPS'ten (60Hz monitör için) neden daha akıcı olduğunu anlamadım. Sonuçta biriken FPS 120 civarında daha fazla. Ayrıca Vsync daha fazla gecikmeye sebep oluyor Free Sync gibi çözümler yoksa. Acaba kaçırdığım nokta mı var yazınızda?
Estafirullah. Hiç bir çizim kullanmadan bu kadar anlatabilmiş olmama bile şaşırdım aslında. Ben bu şeyleri öğrenirken hep matematik formülleri ve grafik çizimler üzerinden anlamıştım.
Biraz hayal gücünüzü şöyle zorlayayım. Bir otobüs terminali düşünün. Her 16.67 saniyede bir, bir otobüs kalkıyor. Siz ne zaman gelirseniz gelin, en yakın kalkış saati olanla gidiyorsunuz. Bu terminal, 60Hz'lik bir ekran, otobüsler de tazelenen görüntüler. Siz de görüntüyü taşıyan emanetçisiniz.
Terminal açıldı, sizin elinize bir resim tutuşturdular. Resmin üzerindeki tarih 00.00.0000 (dakika-saniye-milisaniye). Uyduruyorum, 5ms içinde terminale gidip resmi otobüse verdiniz. Bu ilk otobüs, açılıştan 16.67 ms sonra kalkacak. Yani siz 5 ms içinde vermiş olsanız bile 11.67 ms daha bekleyecek. Bu otobüsün gideceği yere varması da (ekranın camı) 8ms sürüyor diyelim (tipik piksel gecikmesi/hayaletlenme). Sizin, 00.00.0000 zamanına ait resminiz 16.67 + 8 = 24.67 ms sonra ekran camında belirecek. Yani resmin "oluşturulması", resmin "içeriğinde olan olay" ile bunun "ekran camında gerçekten görüntülenmesi" arasında 24,67 ms zaman kayması var.
Eğer, bundan sonra gelecek istisnasız bütün resimler arasında aynı miktarda kayma varsa beynimiz bu kaymaya adapte olur ve bunu hissetmeyiz. Beyin, izlediği şeylerde 200 ms, dokunduğu şeylerde 70-80 ms'ye kadar zaman kaymalarına adapte olabilir. Ancak bu kaymalar sabit değilse beynimiz hepsini hisseder ve tutukluk duygusu ya da bazılarımızda mide bulantısı, baş dönmesi olarak tepkiler verir.
Siz terminale bir saniyede 70 tane resim gönderiyorsunuz ve hepsi eşit zaman aralıklarıyla oluşturulmuş animasyonlar içeriyor diyelim. Animasyonların üretilme süre aralıkları 1000/70 = 14.29 ms. Ama otobüse binme süreleri bundan farklı.
Bakalım;
1. Resim--> 14.29'uncu saliseye ait. Görüntülenme zamanı 16.67. salise.
2. Resim--> 28.58. saliseye ait. Görüntülenme zamanı 33.34. salise.
3. Resim--> 42.87. saliseye ait. Görüntülenme zamanı 50.01. salise.
4. Resim--> 57.16. saliseye ait. Görüntülenme zamanı 66.67. salise.
5. Resim--> 71.45'e ait, görüntülenme 83.34.
6. Resim--> 85.74. Görüntülenme 100.00.. dikkat ettiyseniz 6. resmin yaratılış zamanı 5. resmin görüntülenmesine aşırı yakın. Bakalım 7. resimde ne olacak.
7. Resim--> içerik zamanı 100.00. O zaman, 6. resmin binmesi gereken otobüse yetişip onun yerine geçebilir. Bu durumda 6. Resim çöpe gitti. Onun yerine 7'yi görüntüleyeceğiz. Ancak beynimiz o eşit parçalara bölünmüş animasyon duygusundan her 7 resmin birinde kopacak. Diğer 6 resmin animasyon aralıkları da sürekli 3ms kadar kayarak değişecek. Akıcılık hissi böylelikle azalmış olacak.
Peki 120 FPS olsaydı ne olacaktı? Her otobüse çift sayılı resimler binecekti. 2. resim otobüs kalkmadan yetişip 1. resmi indirecek ve onun yerine gerçekti. 4, 3'ün, 6, 4'ün...vs vs. Böylece hep 2., 4., 6., 8., resimleri görüp yine zamana eşit yayılma hissini yaşayabilecektim.
Oyun konsollarının 30 FPS ısrarı buradan geliyor. Dağınık ve değişken bir 40 küsürlük deger yerine 30 tane eşit aralıklı görüntü üretmek daha akıcı bir his veriyor.
Biriken FPS konusuna da değineyim. Yazılım kısıtlaması gereği biriken FPS 3'ten fazla olamaz. Bu yüzden bu 3 tane fazladan kareyi ne kadar hızlı bir şekilde otobüslere bindirirseniz gecikmeden o kadar çabuk kurtulmuş olursunuz. 70 FPS'te her 7 kareyi 6 otobüse bindirdiniz, yani her saniye için 1 tane birikmişten kurtuldunuz. 120 FPS'te ise her 6 otobüse 12 resim biniyor, her saniye için 6 tane birikmişten kurtuluyorsunuz.
V-Sync'le iligli oyun ve donanım üreticilerinin (daha fazla donanım satmak için) asla söylemedikleri şey şudur: Bu hesaba göre V-Sync'le zaman kayması olmadan oyun oynamak için ya ekran tazeleme oranının 4 katından fazla FPS almalı ve tüm birikmiş resimleri aynı otobüse bindirmelisiniz, ya da her saniye ekran tazeleme hızının 0.01ms altında kalıp resim birikmesine engel olmalısınız.
60Hz bir ekran için 59.99 FPS ile 240.01 FPS aynı gecikmeyi verecektir demek bu. Biri için 5000 Tl'lik PC fazla gelirken öbürüne araba parasi vermeniz gerekiyor =)