• 24-06-2018, 01:30:43
    #1
    OpenGL C++ Sfml kütüphanesi içinde
    https://www.sfml-dev.org/tutorials/2...dow-window.php
    bu sayfada da olan, window.setFramerateLimit(60);

    değeri kaç olabilir, 60 uygunmudur? mesela bu kod olmadığında bazen çok hızlı çalışıyor , mesela A harfine basılddığında bir işlem yapılıyor ama limit koyulmadığında A harfine basıldığında uçup gidiyor,
    yavaş pc lerde de sıkıntı olabilir diye düşündüm; bu açıdan neler kullanabilirim?



    Ekleme: window.setVerticalSyncEnabled(true); varmış, sizce bunu kullanayımmı yoksa limitli olanımı kullanayım?
  • 24-06-2018, 02:18:32
    #2
    Üyeliği durduruldu
    Standart 60 olması önerilir. Fakat, yaptığın oyuna bir adet ayar komutu eklemeniz öneririm. Vertical Synchronization yani Dikey Senkronizasyon, bu nedir diyecek olabilirsin. Bu, oyunu veya uygulamayı kullanan kişinin kullanıldığı monitörün Hz(Hertz) değeri ile, mesela benim monitörün 60Hz, oyunun çalışacağı Hz veya FPS değerini eşitler. Böylece, oyuncunun en önerilen yani, ne FPS düşüşlerinde fazla etkilenir ne de FPS artışları fazla etkiler. Bu işe yarar. Bu Dikey Senkronizasyonun, açık veya kapalı olup olmadığını kullanıcıdan alıp, buna göre işlem yapabilirsin. Eğer kullanıcı dikey senkronizasyon istemez, hayır seçerse; o vakit otomatik değer yani o an için her karedeki render işlemi, bir sonraki kareye veri yollarken veya işlemler yaparken bir sonraki karede bilgisayarının sağlayabileceği maksimum FPS değerini gönderir, böylece her karede değişken bir FPS çizelgesi oluşur. Otomatik FPS, önerilmez. Çünkü, FPS belli aralıklarda gitmez sürekli çizelgede performans düşüklükleri olur. FPS düşmeleri oyunun veya uygulamanın performansını zorlar. Bu nedenle, kullanıcı;</br>1- Dikey Senkronizasyon (Evet/Hayır) seçebilecek,</br>2- Dikey Senkronizasyon açıksa, oyun veya uygulama sabit olarak, kullanıcının monitör Hertz değeri ile sürükledi senkron yani eş biçimde gidecek, FPS düşüşlerinde FPS değerini Monitör Hz değerine yaklaştırmaya çalışacak, veya FPS artışlarında FPS değerini Monitör Hz değerine azaltmaya çalışacak,</br>3- Dikey Senkronizasyon kapalı ise, kullanıcı FPS çözümlemesinin OTOMATİK/DEĞER (USER INPUT) olacağını seçecek,</br>3.1- FPS otomatik olursa, render işlemi her karede bir sonraki kareye geçmeden önce verileri işler ve her karede bilgisayarın tüm durumlarına göre, alınabilecek en yüksek FPS değerine ulaşmaya çalışır,</br>3.2- FPS değeri, kullanıcı tarafından bir değerle belirlendiyse; Dikey Senkronizasyonun açık olduğu durumdaki gibi FPS tüm durumlarda kullanıcının belirlediği FPS değerine yakın kalmaya çalışır,Kolay gelsin