Bagaimana saya bisa membuat shader geometri yang dapat menangani beberapa primitif? Misalnya ketika membuat shader geometri untuk segitiga, saya mendefinisikan tata letak seperti:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
Tetapi jika saya menggunakan shader ini maka garis atau poin tidak akan muncul. Jadi menambahkan:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
layout(lines) in;
layout(line_strip, max_vertices=2) out;
Shader akan mengkompilasi dan menjalankan, tetapi hanya akan membuat baris (atau apa pun yang didefinisikan primitif terakhir).
Jadi, bagaimana saya mendefinisikan shader geometri tunggal yang akan menangani beberapa tipe primitif? Atau apakah itu tidak mungkin dan saya perlu membuat beberapa program shader dan mengubah program shader sebelum menggambar setiap jenis?
sumber