2016-04-11 62 views
0

Oyunlarda Frame buffer nesneleri hakkında bir sorum var. Bir kullanıcı ekran çözünürlüğünü birden çok kez değiştirirse, post-processing vb. Için FBO boyutlarında ne olur? Oluşturulan tüm FBO'ları silmeniz ve yenilerini oluşturmanız mı gerekiyor? Onları yeniden boyutlandırmak daha mı iyi? ya da zaten mevcut değilse ve eskileri (eski ekran çözünürlüğüne geri dönebiliyorsa) yenilerini yaratanlar yaratan bir işleyici yaratmak daha mı iyi? (En son teklif, kullanıcı sürekli olarak ekran çözünürlüğünü değiştirdiğinde muazzam miktarda grafik belleği tüketebilir).OpenGL FBO doku genişlik yükseklik oyunları

Şimdiden teşekkürler.

+0

Sadece meraktan dolayı, pencerenizi ne zaman yeniden boyutlandıracak önemli bir tasarım kararına sahip olacaksınız? :) Bir oyun oynamak için gereken dikkat süresine sahip değiller. –

+0

Kullanıcı, 1-2 kare için eksik işlem sonrası etkilerini veya yeniden boyutlandırmadan sonra ilk tam oluşturulmuş çerçevenin görünmesinden önce beklenmedik bir gecikmeyi kabul etmesini nadiren gerektirecektir. Daha da önemlisi, zamansal reprojeksiyon yaygınlaşıyor. –

+0

Andon M. Coleman: P Bir kullanıcı en yüksek FPS/Kalite için en iyi ekran çözünürlüğünü bulmaya çalışıyorsa, en kötü durum senaryosunu düşünün. – karl88

cevap

1

Bana göre, pencerenizi yeniden boyutlandırdığınızda bazı gecikmeler olması gerçekten sorun değil. Pencereyi yeniden boyutlandırdığınızda, sanırım performansları umursamıyorsunuz. Bana göre, pencereyi yeniden boyutlandırdığınızda, gerçekten çalmıyorsunuz ve siz oynarken, genellikle tam ekran modunu kullanıyorsunuz. Yani iki olasılık var: Birincisi, tüm çerçeve arabelleklerinin boyutunu düzeltir, basit oyun için tamam olabilir ama "karmaşık oyunlar" için gerçekten uygun olmayabilir.

İkincisi, söylediklerinizle ilgilidir. FBO bunlara bir şey vermek için var ve günümüzde dinamik olabilir, bu nedenle, birkaç boyutta sbora sahip olmanın tek amacı, yeniden boyutlandırdığınızda gecikmelerden kaçınmaktır. IMHO, bu tür gecikmeleri umursamıyorsunuz ve sadece tekrar FBO'ları kaldırabiliyorsunuz.

+0

Yanıt için teşekkürler. V-RAM'de hafıza parçalanması ne olacak? Çıkarırken ve yeniden oluştururken göz önünde bulundurulması gereken bir şey var mı? – karl88

+0

Bana göre, eğer V-RAM'de bellek parçalanmasını gerçekten önemsiyorsanız, Vulkan x) 'e geçmelisiniz. Daha ciddi olmak gerekirse, sürücüye karşı emin olmak kötü bir fikir değil. Örneğin, 100M video ram tahsis ederseniz ve 50M'yi kaldırdıktan ve yeniden yükledikten sonra, aynı alanı –

+0

kullanması büyük olasılıktır. Ancak, kullanıcının 4k ekranı varsa çok daha kötü olacaktır. Kullanıcının oyunu 1920 * 1080 ekran çözünürlüğü ve birkaç dakika sonra 2560 * 1440'a ve tekrar 3840 * 2160'a çevirdiğini varsayalım. Post-processing için büyük G-buffer'larınız ve diğer tamponlarınız varsa bu kritik olacaktır. Büyük şirketlerin Fbos için hafızayı nasıl kullandığını bilmek güzel olurdu. – karl88

İlgili konular