SORU
19 Ocak 2012, PERŞEMBE


OpenGL VAO en iyi uygulamalar

İm VAO bağımlı olmak inandığım bir konu ile karşı karşıya, ama.. emin değilim

Bir VAO doğru kullanım hakkında emin değilim, GL başlatma sırasında yapmak için kullanılan ne kadar basitti

glGenVertexArrays(1,&vao)

bir izledi

glBindVertexArray(vao)

ve sonra, benim çizim boru hattı, hemen aradım() glBindBuffer, glVertexAttribPointer(), glEnableVertexAttribArray()ve aldırmadan başlangıçta ilişkili VAO hakkında

bu doğru bir uygulama mı?

CEVAP
19 Ocak 2012, PERŞEMBE


VAOs benzer şekilde VBOs hareket ve bağlı oldukları nasıl ile ilgili dokular. Tek bir VAO programın tamamı boyunca bağlı olması da hiç VAOs olmadan işleme olabilirsin çünkü hiçbir performans faydalar getirecektir. Aslında yavaş uygulanması çizilmiş konum olarak köşe nitelik ayarlarını nasıl yakaladığını bağlı olabilir.

Bir VAO noktası tüm yöntemleri bir nesne başlatma sırasında bir kez çizmek için gerekli çalışma ve çağrı Tepegöz ana döngü sırasında tüm ekstra yöntem biçilmiş kaftan. Nokta çizim arasında çok VAOs ve anahtarı var.

En iyi açısından pratik, buraya kodunuzu düzenlemek gerekir:

initialization:
    for each batch
        generate, store, and bind a VAO
        bind all the buffers needed for a draw call
        unbind the VAO

main loop/whenever you render:
    for each batch
        bind VAO
        glDrawArrays(...); or glDrawElements(...); etc.
    unbind VAO

Bu/yığınının tamponlar bağlama ve her köşe nitelik için tüm ayarları geçen karışıklığı önler ve sadece tek bir yöntem çağrısı ile değiştirir, bir VAO bağlama.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kai Moosmann

    Kai Moosmann

    5 Temmuz 2006
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008