Unity 3D TR Forum

Orjinalini görmek için tıklayınız: Android build'de fps sorunu..
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhabalar, aranıza yeni katıldım.. Günlerdir çözemediğim bir sorun var.

Standart 3d olarak oluşturduğum projeme sadece bir küp ve hareket etmek için script ekledim. Fakat bu kadar basit bir sahneyi bile, android için build edip, telefonuma attığımda, ~25 fps alıyorum(fps sayacı ekledim, profiler'den de kontrol ettim). Android için kalite ayarı medium da.

Profiler' den incelediğimde görüntü bu şekilde(örnek resim koydum, birebir aynı cpu kullanım değeri):

resim



Telefonum Huawei Mate 10 Lite. Biliyorum, pek iyi sayılabilecek bir telefon değil ama bu kadar basit bir sahnede bile 25 fps olması normal mi ?

Test etmesi için arkadaşıma da yolladım, o S8 kullanıyor, 60 fps aldığını söyledi.

Şimdiden yardım eden, etmeye çalışan herkese çok teşekkürler, iyi günler.
Yukarıdaki resimde waitforsignali tıklatıp resmi koymuşsunuz belli ki buna dikkat çekmek istiyorsunuz.

   Waitforsignal anladığım kadarıyla cihazınızın saniyede dünya kadar fps hesaplamaması için tasarlanmış bir fonksiyon o yüzden içiniz rahat olsun ortada bir sorun yok ve sizde de hata yok. 

   25 fps mevzusu telefonuzun kötü olduğundan değil (zaten telefonunuz kötü de değil) telefon yapımcılarınız belirlediği standartlar yüzünden olmuş olabilir, büyük ihtimal telefonunuz 24 fps destekliyordur unity de size boşa hesap yaptırtmayıp 24-25 fps hesaplatıyordur, bunu denemenin en kolay yolu ortaya bir küp değil 100 küp ya da daha fazlasını koyup yine aynı fps yi alıyormusunuz diye bakmak.
(16-10-2019, Saat: 18:30)abayir41 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Yukarıdaki resimde waitforsignali tıklatıp resmi koymuşsunuz belli ki buna dikkat çekmek istiyorsunuz.

   Waitforsignal anladığım kadarıyla cihazınızın saniyede dünya kadar fps hesaplamaması için tasarlanmış bir fonksiyon o yüzden içiniz rahat olsun ortada bir sorun yok ve sizde de hata yok. 

   25 fps mevzusu telefonuzun kötü olduğundan değil (zaten telefonunuz kötü de değil) telefon yapımcılarınız belirlediği standartlar yüzünden olmuş olabilir, büyük ihtimal telefonunuz 24 fps destekliyordur unity de size boşa hesap yaptırtmayıp 24-25 fps hesaplatıyordur, bunu denemenin en kolay yolu ortaya bir küp değil 100 küp ya da daha fazlasını koyup yine aynı fps yi alıyormusunuz diye bakmak.

Merhabalar cevabınız için teşekkürler, evet dikkat çekmek istediğim nokta bir yandan da orası. Bu waitforsignal tam olarak nedir, neden bu kadar cpu kullanır ?

Bu arada dediğinizi yaptım, küp sayısını 10 katına çıkardım ve fps hala 25. Peki nasıl yükseltebiliriz bunu ? Traffic Racer gibi unity ile yapılmış birkaç oyunu 60 fps'lerde oynuyorum( akıcılığından anladığım kadarıyla ), yani bunu arttırmanın bir yolu var mı ?
Waitforsignal vysnc açık olunca çalışır ve monitör ya da ekranınızın max göstereceği fps i göstertmeye çalışır böylece fazla kare hesaplatması yapmaz (bu kadaranet konuşuyorum lakin bunlar sadece tecrübelerim ve birkaç küçük araştırnalarım). Eğer Edit(başka yerde olabilri) > Prject Setting > Quality sekmesinde vsycn kapatırsanız belki istediğiniz sonuca ulaşabilirsiniz birde void Start a

 Application.targetFrameRate = 60; 

Ekleyip denerseniz olabilir lakin bunların olabilme ihtimali düşük çünkü android böyle şeyleri pek desteklemez genellikle telefon standartı ne ise onu gösterir ilk yazınızda olduğu gibi S8 de 60 fps iken sizde 24 fps bu ekranınızın kaç hz olduğuna bağlı 

İlla yüksek fps görücem diyorsanız windowsa çıktı alın orada daha hürsünüz belki 300 fps bile görebilirsiniz tabi ilk başta dediğim gibi vysnc yi kapatıp olmadıysa yazdığım kodu 300 e eşitleyerek deneyebilirsin
(16-10-2019, Saat: 21:24)abayir41 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Waitforsignal vysnc açık olunca çalışır ve monitör ya da ekranınızın max göstereceği fps i göstertmeye çalışır böylece fazla kare hesaplatması yapmaz (bu kadaranet konuşuyorum lakin bunlar sadece tecrübelerim ve birkaç küçük araştırnalarım). Eğer Edit(başka yerde olabilri) > Prject Setting > Quality sekmesinde vsycn kapatırsanız belki istediğiniz sonuca ulaşabilirsiniz birde void Start a

 Application.targetFrameRate = 60; 

Ekleyip denerseniz olabilir lakin bunların olabilme ihtimali düşük çünkü android böyle şeyleri pek desteklemez genellikle telefon standartı ne ise onu gösterir ilk yazınızda olduğu gibi S8 de 60 fps iken sizde 24 fps bu ekranınızın kaç hz olduğuna bağlı 

İlla yüksek fps görücem diyorsanız windowsa çıktı alın orada daha hürsünüz belki 300 fps bile görebilirsiniz tabi ilk başta dediğim gibi vysnc yi kapatıp olmadıysa yazdığım kodu 300 e eşitleyerek deneyebilirsin

Vsync kapalı, verdiğiniz kodu da uyguladım fakat maalesef değişen bir şey yok :/ Waitforsignal'da hala çalışıyor bu arada..

Diğer oyunlarda 60 fps oynuyorum ama.. Ayrıca 60fps videolarıda akıcı şekilde izliyorum. Demekki ekranım 60hz.. Başka bir fikriniz var mı ? Sad
Ben daha bir şey diyemem malesef bence devam edin uygulamaya 

fps sabit bir değerde olması android için önenli olduğu için unity sizin telefona 24 fps yi uygun görup otomatik olarak böyle yapmış olabilir
(16-10-2019, Saat: 23:02)abayir41 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Ben daha bir şey diyemem malesef bence devam edin uygulamaya 

fps sabit bir değerde olması android için önenli olduğu için unity sizin telefona 24 fps yi uygun görup otomatik olarak böyle yapmış olabilir

Şimdi fark ettim, gölgeleri kapattığım zaman fps 52 - 53'lere çıkıyor. Sanırım telefonumun grafik işlemcisi, gölgeleri işlemek için yetersiz.