bonjour,comme indiqué dans le titre,j'ai un petit problème que je n'arrive pas a résoudre,et qui concerne l'affichage avec des shaders.
J'ai commencé a apprendre ceux ci il n'y a pas si longtemps,ducoup pardonnez le noob que je suis si il m'arrive de heurter l'illustre intelligence de certains ici par mon QI négatif.
Voila,je programme actuellement un moteur de particules.
Ma première idée avant l'utilisation des shaders,c'est de faire de minuscules triangles a coup de glVertex auxquels j'attribue des propriétés physiques,donc chutes,paraboles etc etc.
Le problème,c'est que c'est que faire des triangles en faisant des rendus de couleurs via le pipeline fixe,c'est moche...le deuxième problème,c'est que je n'aime pas ce qui est moche
Ce qui m'amène a l'utilisation des shaders(qui a fait mon bonheur...m'oyez,toutes ces couleurs)...
Et la...voici le truc qui cloche...(je vous link une vidéo de ce que j'arrive a faire avec des shaders pour l'instant ):
Ce que je veux obtenir,ce sont des particules "lumineuses" comme sur la vidéo...le problème c'est que ces particules sont en fait dessinées sur un seul et unique GL_QUAD,ce qui fait que les couleurs,qui vont de (0,0) jusqu'a (taille de l'écran,taille de l'écran) sont uniformes,je veux dire par la que les couleurs ne peuvent pas passer du rouge flambant,au noir directement,ce qui m'amène a la problématique du sujet:
Comment faire pour garder une meme qualité de rendu,en utilisant des particules comme celles ci?
-je ne peux pas utiliser de formes géométriques GL_TRIANGLES,GL_QUADS etc comme quand j'utilisais le pipeline fixe...J'ai essayé,et c'est assez moche lorsque le fragment shader rend des couleurs a l'intérieur,celles ci diffèrent du fond d'écran noir,ce qui fait que les formes géométriques sont visibles,si elles sont trop grandes (dans un moteur de particules on est pas censé voir des rectangles de 2m² censés representer vos particules) et si elles sont trop petites,l'effet du shader ne se voit pas...de plus,comme je l'ai dis plus haut,ses couleurs ne vont pas plus loin que la forme dans lequel il est rendu,vu que c'est un shader et qu'ils s'execute sur des vertex.
-y'a t'il un moyen de faire ceci avec un seul rectangle ou sont rendus les effets du shader,et que la simulation des particules se fasse seulement dans le fragment shader,ou le vertex shader...le nombre des corps étant variable,j'ai des doutes concernant cette méthode.
Enfin bref,vous feriez comment vous?
Partager