Bonjour,
Je me casse un peu les dents sur un problème de shader. Je préfère ouvrir cette nouvelle discussion ici puisque c'est un programme en Pure Data et il y a des apparemment des pros des shaders si l'on en juge par les nombreuses ressources épinglées ici par nono...
Mon programme de shader est simple (ci-dessous) : une boule rouge se déplace avec la souris. Je voudrais juste faire en sorte que le mouvement fasse une trainée rémanente (qu'il reste une trace du mouvement qui s'estompe peu à peu). J'ai cru comprendre que l'OpenGL était sans mémoire, mais je me doute qu'il devrait y avoir une possibilité pour garder une trace du mouvement sur la fenêtre. Une autre solution serait, bien sûr, d'envoyer de multiples positions à partir de Pure Data, mais cela retirerait le bénéfice de la rapidité de calcul du shader.
Auriez-vous une solution à cette question ?
RP
Dernière modification par Pertuit (2016-10-05 11:05:53)
Hors ligne
hello,
pour ce faire, il te faut travailler avec avec l'image d'avant, que tu peux récupérer avec un gemframebuffer, et que tu renvoie en sampler2D ou sampler2DRect (en texture, quoi!), et puis ensuite, ben tu en fait ce que tu veux!
Hors ligne
Merci nono. Je vais regarder et posterai le résultat. Pas de possibilité de faire ça directement dans le code du shader donc ?
Dernière modification par Pertuit (2016-10-07 05:57:14)
Hors ligne
Ben si, justement...
Ton shader sert à dessiner dans ton rendu, il faut incorporer une image en feedback et la mélanger avec un truc du genre :
couleur+=vec3(texture2d(ID_Texture_Feedback,gl_TexCoord[0].st).rgb);
couleur/=2.;
Mais si tu utilise des FragCoords au lieu de TexCoords cela risque d'être difficile à mettre en place...
Hors ligne
Non, je ne m'en sors pas... Aurais-tu un exemple sur lequel je pourrais m'appuyer ? Les textures 2D, FragCoord et TextCoord ne sont pas très parlant pour moi.
Hors ligne
J'ai réecrit les shaders et le patch pour te donner un exemple.
A adapter pour ton rendu souhaité.
Hors ligne
Merci beaucoup nono !! A priori, c'est tout à fait ça.
(mille excuses pour la réponse tardive)
Hors ligne
Bonjour à tous,
Je reprends ce post et me penche de nouveau sur le programme de dessin avec des shaders, après l'avoir un peu laissé de côté... Le programme proposé par nono dans le post précédent fonctionne, mais les shaders ont une beauté cachée qui ne se livre pas facilement. Bien que le code soit assez simple, je ne vois vraiment pas comment le modifier pour introduire d'autres couleurs... Déjà, la technique du "ping-pong de rendu" entre deux chaînes gemframebuffer... Waouu, la classe nono !
Je cherche à dessiner des traits de plusieurs couleurs, mais dès que j'envoie une nouvelle couleur, toute l'image change de couleur également. Est-ce que ce n'est pas possible d'obtenir ceci avec le programme ?
(autoportrait)
Merci de votre réponse.
RP
Hors ligne