OpenGL sürüm 3 ve üstü sürümlerin istemci tarafı oluşturma kullanımını ortadan kaldırdığını görüyorum. Acil durum modu elimine edildi ve tepe dizileri kullanımdan kaldırılmış görünüyor. Bunun yerine, doğru anlarsam VBO, köşeleri dönüştürmenin ana yoludur.
Her şeyin tek tipini oluşturmanın tek yolunun ardındaki mantığı görsem de, VBO'ların tepe dizileri üzerinde büyük bir dezavantajı yok mu? VBO'ların genellikle> 1 MB veri içeren büyük tamponlar olduğunu sanıyordum. Çok daha küçük geometriye sahip bir sahnem varsa ne olur? Her biri kendi dönüşümüne vb. İhtiyaç duyan çok sayıda düğüme sahip bir sahne grafiğim var. Her düğüm ayrıca ayrı ayrı silinebilmeli, ayrı ayrı ekleyebilmeliydi, vb. Daha önce köşe dizileri kullanmıştım. Bu yüzden ilk sorum, eğer VBO'lara geçersem, artık sahne grafiği nesnelerime daha büyük bir ek yük olup olmayacağıdır, çünkü her nesneye bir VBO tahsis edilmesi gerekiyor.
Diğer bir endişe, oluşturduğum geometrinin oldukça dinamik olabilmesi. En kötü durumda, tüm geometrilerin bir süre boyunca her kareye yeniden gönderilmesi gereken zamanlar olabilir. Bu kullanım durumunda VBO'lar verteks dizilerden daha kötü bir performansa sahip olacak mı, yoksa en kötü VBO'lar verteks dizileri kadar işe yarıyor mu?
Yani, özlü biçimde, sorularım:
1) VBO'ların tahsis edilmesi / ayrılması için önemli bir ek yük var mı (sadece bir tampon ayarlama eylemi demek istiyorum)?
2) Verileri CPU'dan her karede güncellersem, bu vertex dizileri kullandığımdan daha kötü olabilir mi?
Sonunda bilmek isterdim:
3) Yukarıdaki sorulardan herhangi birinin cevabı "evet" ise, neden VBO'lara göre avantajları olabilecek diğer render tarzlarını reddetmelisiniz? Burada kaçırdığım bir şey var mı, bu potansiyel tahsisat maliyetlerinin bir kısmını azaltmak için kullanmam gereken teknikler gibi?
4) Bu sorulardan herhangi birinin cevapları, hangi OpenGL sürümünü kullandığıma bağlı olarak değişiyor mu? Kodumu VBO'ları performans gösterecek şekilde kullanarak ileriye dönük olarak OpenGL 3 veya 4 olarak yeniden uyarsam, aynı tekniklerin OpenGL 2 ile iyi performans göstermesi ya da OpenGL 3 ile belirli tekniklerin çok daha hızlı olması muhtemel olacak mı? + ve OpenGL 2'li diğerleri?
Bu soruyu yığın taşması hakkında sordum, ancak bu sitenin soruma daha uygun olabileceğini düşündüğüm için buraya yeniden gönderiyorum.