OpenGL VAO'da hangi durumun saklandığını merak ediyordum. Bir VAO'nun, tamponlanmış tepe noktalarının köşe özellikleriyle ilgili bir durum içerdiğini anladım (arabelleklerde hangi nitelikler ve hangi arabelleklerin bağlı olduğu, ...). VAO'ların doğru kullanımını daha iyi anlamak için, tam olarak hangi durumda olduklarını bilmek isterim.
VAO'ların nasıl kullanılması gerektiğini nasıl varsayırım?
Basit örneklerden VAO'ların doğru kullanımının aşağıdaki gibi olduğunu anladım:
Kurmak
Generate VAO
BindVAO
---- Specify vertex attributes
---- Generate VBO's
---- BindVBO's
-------- Buffer vertex data in VBO's
---- Unbind VBO's
Unbind VAO
sıva
Bind VAO
---- Draw
Unbind VAO
Bundan, en azından tepe tamponlarının ve köşe nitelik özelliklerinin VAO'da depolandığını varsayıyorum . Bununla birlikte, bu kullanım modelinin (çoklu) dokuların (çoklu) gölgelendirici programların devreye girdiği durumlara nasıl yayıldığından emin değilim. Mı aktif shader programı VAO saklanan? Ve doku ciltleri ( örnekleme / sarma ayarlarıyla ) VAO'da da saklanıyor mu? Üniformalar için aynen mı?
Dolayısıyla benim sorularım:
- Bir OpenGL VAO'da hangi kesin durum saklanır ? (VBO ciltleri, özellik özellikleri, aktif gölgelendirici programı, doku ciltleri, doku örnekleme / sarma ayarları, üniformalar ...?)
- VAO'ları , ilişkili örnekleme / sarma ayarlarıyla (çoklu) gölgelendirici programları ve üniformaları içeren (çok sayıda) doku içeren , daha karmaşık bir oluşturma kurulumunda nasıl doğru kullanabilirim ?