Bugün bu öğreticiden OpenGL öğrenmeye yeni başlıyorum: http://openglbook.com/the-book/
Bir üçgen çizdiğim 2. bölüme geldim ve VAO'lar dışında her şeyi anlıyorum (bu kısaltma uygun mu?). Öğreticide şu koda sahiptir:
glGenVertexArrays(1, &VaoId);
glBindVertexArray(VaoId);
Kodun gerekli olduğunu anlasam da ne işe yaradığına dair hiçbir fikrim yok. VaoId'i bu noktadan sonra hiç kullanmama rağmen (onu yok etmek dışında), kod onsuz çalışmıyor. Bunun, bağlı olması gerektiği için olduğunu varsayıyorum, ama nedenini bilmiyorum. Bu tam kodun her OpenGL programının bir parçası olması mı gerekiyor? Eğitim, VAO'ları şu şekilde açıklar:
Bir Köşe Dizisi Nesnesi (veya VAO), köşe özniteliklerinin bir Köşe Tampon Nesnesinde (veya VBO) nasıl depolandığını açıklayan bir nesnedir. Bu, VAO'nun köşe verilerini depolayan gerçek nesne olmadığı, ancak köşe verilerinin tanımlayıcısı olduğu anlamına gelir. Köşe nitelikleri, glVertexAttribPointer işlevi ve onun iki kardeş işlevi olan glVertexAttribIPointer ve glVertexAttribLPointer tarafından tanımlanabilir, bunlardan ilki aşağıda inceleyeceğiz.
VAO'nun köşe özelliklerini nasıl tanımladığını anlamıyorum. Onları hiçbir şekilde tarif etmedim. Bilgileri glVertexAttribPointer'dan alıyor mu? Sanırım bu olmalı. VAO, glVertexAttribPointer'dan gelen bilgiler için sadece bir hedef mi?
Bir yan not olarak, takip ettiğim eğitim kabul edilebilir mi? Dikkat etmem gereken bir şey veya takip etmem gereken daha iyi bir eğitim var mı?