Comment puis-je créer un shader de géométrie capable de gérer plusieurs primitives? Par exemple, lors de la création d'un shader de géométrie pour des triangles, je définis une disposition comme ceci:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
Mais si j'utilise ce shader, les lignes ou les points n'apparaîtront pas. Donc, en ajoutant:
layout(triangles) in;
layout(triangle_strip, max_vertices=3) out;
layout(lines) in;
layout(line_strip, max_vertices=2) out;
Le shader sera compilé et exécuté, mais ne rendra que les lignes (ou quelle que soit la dernière primitive définie).
Alors, comment puis-je définir un shader de géométrie unique qui gérera plusieurs types de primitives? Ou n'est-ce pas possible et je dois créer plusieurs programmes de shader et modifier les programmes de shader avant de dessiner chaque type?
la source