iphone için opengl es 2.0'daki arazim için bir köşe arabellek nesnesini nasıl kullanacağımı anlayamıyorum. Statik veriler bu yüzden VBO kullanarak hız artışı bekliyorum. Düzenli OpenGL'de, ekran listelerini shader'larla birlikte kullanıyorum. Ancak, opengl es 2.0'da vertex verilerini bir öznitelik olarak gölgelendiriciye göndermek zorundayım ve bunun VBO ile nasıl çalıştığını bilmiyorum. Köşe tamponu, arandığında vertex verilerini bağlamak için hangi özniteliğe sahip olduğunu nasıl bilir? Bu opengl es 2.0'da bile mümkün mü? Aksi halde, arazimin statik olmasını optimize etmenin başka yolları var mı?OpenGL ES 2.0 ve köşe arabellek nesneleri (VBO)
8
A
cevap
12
Tabii, bu özellik bir konuma sahiptir, aslında oldukça basittir ve köşe verileri bu gibi düz Vertex dizileri için glVertexAttribPointer ile beslenir:
VBOS içinfloat *vertices = ...;
int loc = glGetAttribLocation(program, "position");
glVertexAttribPointer(loc, 3, GL_FLOAT, GL_FALSE, 0, vertices);
, aynı, ama var arabellek GL_ARRAY_BUFFER hedefine bağlanır ve glVertexAttribPointer öğesinin son parametresi artık arabellek belleğinin belleğine kaydırılır. Ofset Bu durumda
glBindBuffer(GL_ARRAY_BUFFER, buffer);
int loc = glGetAttribLocation(program, "position");
glVertexAttribPointer(loc, 3, GL_FLOAT, GL_FALSE, 0, 0);
tepe veri tampon başlangıcında yüklenen olduğu varsayılarak, 0: işaretçi değeri kendisi ofset olarak yorumlanır. Ofset, bayt cinsinden ölçülerdir. Çizim daha sonra glDrawArrays/glDrawElements ile gerçekleştirilir. Bu yardımcı olur umarım!
İlgili konular
- 1. GL_LINES ve OpenGL ES 2.0
- 2. OpenGL ES 2.0
- 3. Nesneleri OpenGL ES 2.0'da bağımsız olarak dönüştürme
- 4. LibGdx Opengl ES 2.0 kullanmıyor
- 5. OpenGL ES 2.0 ve glPushMatrix, glPopMatrix
- 6. OpenGL-ES ve Cg
- 7. OpenGL ES 2.0 PNG alfa kanalı
- 8. OpenGL ES 2.0 NDK olmadan mümkün mü?
- 9. Android OpenGL ES 2.0: Ben Matrix.traslateM
- 10. CIImage'ın OpenGL ES 2.0 dokuya dönüştürülmesi iOS'ta
- 11. OpenGL ES 2.0 ile OpenGL 4 arasındaki farklar
- 12. Android için Shader OpenGL ES
- 13. OpenGL ES 2.0'da bir dizi dizini için bir tam sayı sağlayın.
- 14. farklı tamponlar iki özellik tutmak için OpenGL ES 2.0 tepe dizi nesne istediğiniz durum
- 15. OpenGL köşe düzeni
- 16. OpenGL ES - Kesik Hatları
- 17. openGL ES retina desteği
- 18. OpenGL ES 1.1 - 2.0 önemli bir değişiklik mi?
- 19. Opengl es 2.0'ı incelerken iyi bir yaklaşım nedir?
- 20. OpenGL ES 2.0'da, Örnekleyiciden gelen komşu metinleri nasıl okuyabilirim?
- 21. OpenGL ES 2.0'da "Glow" gölgelendirici efekti nasıl edinilir?
- 22. OpenGL ES 2.0 - Render to texture all siyah
- 23. OpenGL ES 2.0'da glOrthof nasıl elde edilir
- 24. OpenGL sise karşı OpenGL ES sis
- 25. Köşe nesneleri ile hızlı doku çizim OpenGL. Bunu yapmanın yolu bu mu?
- 26. OpenGL ES ile yakınlaştırma ve yavaşlama
- 27. OpenGL ES ve Android'de büyük bitmap'leri kullanma
- 28. Opengl - farklı köşe formatları oluşturma
- 29. OpenGL ES dokuya işlenir, ardından doku çizilir
- 30. Tam ekran doku iPhone OpenGL ES
Evet, ihtiyacım olanı yapmalıyım. Yarın deneyeceğim. Teşekkürler! – Nitrex88
İkinci örnekte "vertices" ile ne yapacağımı bulabilirsem belki bana yardımcı olabilirdi. Bir fikir? –
@Sanphane köşeleri glBufferData kullanılarak bir VBO'ya yüklenmelidir. –