Hello!
Bien que je les ai découverts il y a un bout de temps, j'expérimente concrètement depuis hier les Geometry Shaders (GLSL).
Pour ceux qui ne savent pas/ont oublié, un geometry shader prends un point en entrée et peut ressortir N points formant des triangles, ce qui permet de décupler le nombre de polygones sur la scène) (qu'on me corrige si je m'exprime mal )
J'ai été impressionné par la puissance et les possibilités offerts par ce type de shaders, et du coup je me demande quelles sont les limites concrètes d'un geometry shader, et pourquoi ne sont ils pas utilisés à foison partout où c'est possible. Quand on voit des projets de recherche comme celui-ci, on se demande pourquoi les jeux vidéos ne nous permettent pas déjà de nous balader dans des décors aussi vastes (je sais qu'en ce moment c'est la mode du MMO-sandbox-minecraft-galaxy, mais rien n'est annoncé chez les gros studios, et à part No Man's Sky, rien n'a l'air de vraiment claquer sa maman)
Pour en revenir à la question initiale, pourquoi, par exemple, ne pas créer un convertisseur .obj -> geometry shader, de manière à ne stocker qu'un seul point d'origine, et ainsi dessiner un mesh complexe uniquement depuis la CG (pour s'éviter les transferts vers le GPU qui sont couteux, et pour diminuer le coût en VRAM)? Le seul problème qui me vient en tête est que si l'on a besoin d'avoir des collisions style Ray-Triangle, il faut que les triangles soient aussi stockés côté RAM pour pouvoir effectuer les calculs.
Pour travailler actuellement sur un moteur professionnel maison (côté Consoles Next-gen, et pas du tout rendu puisque je bosse sur l'audio et la vidéo), je n'ai trouvé aucune trace de geometry shader quelconque…
J'en appelle donc à Gwenn (coucou!) et à tous ceux qui auraient déjà expérimenté les geometry shaders de manière amateur ou pro: quels sont les réels inconvénients des Geometry Shader (hormis qu'il faille les écrire ) ?
Et demain, je découvre les Tessellation Shaders…