Özür dilerim, soru dizinize bir yorum ekleyecektim ama çok fazla detaylandırdığımı fark ettim. Geliştirme deneyimim DX 11 perspektifinden geliyor, bu yüzden bunların bazıları OpenGL'de olmayabilir
Verilerin hafızadaki yeri kesinlikle önemli bir rol oynar. Ancak, bunu bilen birkaç öğe daha var, bildiğiniz gibi verilerin genişliği. Birkaç GPU'um vardı ve bazılarına belirli devrilme noktalarına dayanarak keskin bir performans gösterdim. Örneğin, eski AMD r290'ımda hatırlıyorsam, temelde 4'ten fazla float4'ü 1'den fazla ek maliyet olmadan köşe arabelleğine geçirebilirsiniz, ancak> 4'ü yayınladıktan sonra ölçülebilir bir düşüş vardı (çerçeve içinde) oranı). Bu tamamen hatırlamamın dışında ve bu yüzden en iyi anekdot. Ancak GPU mimarisinin her zaman değiştiğini ve bugün size bir performans avantajı sağlayan niş tekniklerin yarın performansınızın sıkıntısını çekebileceğini iddia ediyor. BEN'
Bunu söyledikten sonra, köşeleri sipariş etme sorusunu sordunuz ve bu kesinlikle marjinal olarak yardımcı olacaktır. Performans kazancı, bunu dizin arabellekleriyle birleştirdiğinizde donanımın zaten hesaplanmış köşeleri optimize etmesini ve önbelleğe almasını sağlar. Kesinlikle özellikle düşüncelerinize göre sipariş üçgen şeritler vb daha fazla kazanç elde edebilirsiniz. Yaptığım model oluşturmanın çoğu, indeksleme ile köşe / tepe tabanlı optimize edilmiş modellerdir, döngüsel hareket efektleri (örneğin ağaç dalları) için az miktarda arama kullanıyorum, bu durumlarda ağacın tüm dalı aynı değeri arıyor. Böylece önbellekleme burada da kullanılabilir.
Kendimden özet olarak söyleyebileceğim tek şey:
- Oyunda / uygulamanızı hala geliştirirken zamanından önce optimize etmemeye çalışırken, optimizasyonu başlangıçta fazla düşünmemeye çalışın. Geri dönmeniz ve yeni özellikler eklemeniz gerekiyorsa, tüm çabayı kaybedebilirsiniz. Belki benim alışkanlığım var> <, en iyi performansı ve teknikleri almaya çalışmayı seviyorum
- GPU mimarileri çeşitlidir ve birinin güçlü yönleri diğerinde zayıflıkları yansıtabilir. AMD ve Nvidia, oyunları mimarilerine göre optimize etmek için geliştiriciler almakla ünlüdür, bu nedenle her birinin avantajları / dezavantajları vardır. Geliştirme konusunda orta yolu kullanmak en iyi yer olabilir, herhangi bir donanım satıcısı tabanlı özellik kullanmayın (burada görüş). (buna ek olarak, bazı paketlenmiş biçimler yalnızca AMD'de bulunur).
Bunlar yaşadığım birkaç düşünce ve deneyimdi. Orada bu konuların etrafında ellerini almak gerekir bir sürü kitap var. Ne önerdiğinizi çok fazla reçete etmedim, ama bu onun yanlış olduğu anlamına gelmiyor. İyi şanslar.