Pertanyaan cepat: Yang merupakan metode tercepat untuk membuat array besar partikel 4x4 / 8x8 di OpenGL? Saat ini saya menghabiskan 2ririles untuk masing-masing tetapi saya pikir itu lambat jadi saya benar-benar ingin tahu apakah saya melakukannya dengan benar .....
opengl
graphics
software-engineering
pengguna1010005
sumber
sumber
Jawaban:
Anda dapat menggambar poin dengan OpenGL.
Anda ingin memanggil glDrawArrays () atau glDrawElements () dengan GL_POINTS (bukan GL_TRIANGLE_STRIP atau apa pun yang Anda gunakan.)
Ini akan menarik poin ke layar berdasarkan pada ukuran titik saat ini, yang dapat Anda atur melalui glPointSize () . Anda juga dapat menambahkan poin ini, tetapi menurut pengalaman saya tidak semua driver / perangkat keras mendukung poin alias.
Anda tidak dapat memberi tekstur titik-titik ini; mereka hanya satu warna.sumber
Dalam inti OpenGL 3.2 dan di atasnya, shader geometri tersedia untuk digunakan. Untuk memberikan gambaran singkat, Anda hanya akan memberitahu OpenGL untuk menggambar titik-titik yang mewakili posisi partikel Anda, dan titik-titik ini akan melewati vertex shader secara normal, tetapi kemudian ketika mereka sampai ke shader geometri, ia membangun persegi panjang (keluar dua tris) dengan memancarkan simpul ke tahap berikutnya dari pipa. Bersama dengan simpul, Anda secara terprogram dapat menghasilkan koordinat normals dan tekstur.
Karena ini semua dilakukan dalam perangkat keras, saya cukup yakin ini adalah cara tercepat saat ini untuk membuat partikel titik-sprite.
sumber