Thank you, Christof and Cyrille, for your insights. I think I understood the concept. But do I need even framebuffer ping-ponging when I only _add_ to the framebuffer? Let's say I add more and more pixel-sized white squares to the buffer, I can use this as my mask, no?
Roman On Sam, 2017-04-08 at 11:05 +0200, cyrille henry wrote: > hello, > I use ping "pong buffer" frequentlly : using 2 framebuffer is a good > way to go. > > There is an exemple in 10.glsl/07.framebuffer_and_shader : I use a > "ping pong" to create the wave physical model. > > For your application, you don't even need a shader to alter the image > : you can draw the image, then draw a pixel size square where you > want to modify it. > > c > > > Le 08/04/2017 à 10:51, Christof Ressi a écrit : > > > > You could also experiment with fragment shader + "ping pong" > > framebuffers: > > > > shaders usually don't have 'memory' of the last frame(s), so the > > idea is that you have two framebuffers and *alternately* take one's > > texture as input and draw to the other framebuffer. this way you > > can work on the previous frame and manipulate the alpha channel, > > e.g. subtract values from your alpha pixels based on some random > > function etc. You can define some uniforms to control the > > parameters of your decay formula from outside. > > > > Framebuffer ping ponging is easy in openFrameworks, but I have > > never done it in GEM (honestly I haven't used GEM for a long time > > now). I guess you can use two [gemframebuffer] objects and switch > > your connections every other frame... > > > > > > > > > > Gesendet: Samstag, 08. April 2017 um 10:32 Uhr > > > Von: "Christof Ressi" <christof.re...@gmx.at> > > > An: "Roman Haefeli" <reduz...@gmail.com> > > > Cc: pd-list <pd-l...@iem.at> > > > Betreff: Re: [PD] [Gem] Modifying single pixel of pix image > > > > > > That's funny, I just did exactly this recently, but in > > > openFrameworks. If you want to do it entirely in GL (which will > > > be fastest), this is how I did it: > > > > > > start with a white framebuffer and gradually draw black stuff in > > > there. Don't clear the framebuffer so it accumulates. You can > > > even draw with alpha blending to make the decomposition smooth. > > > Then simply use the texture of the framebuffer as the alpha mask > > > for your image texture. > > > > > > I couldn't see how to do GL alpha masking in GEM but you can > > > easily write a little shader which takes the two textures as > > > uniforms, then you would just need to take one channel of the > > > mask texture and copy it to the alpha channel of your image > > > texture. > > > > > > You can also try on the CPU level: create your mask in a table, > > > make it to a greyscale image and use pix_takealpha to copy your > > > alpha mask to your image pixels. Of course, this will be much > > > slower. > > > > > > You can also mix the two approaches: create the mask on the CPU > > > and do actually masking in GL. > > > > > > Hope that helps! > > > > > > > > > > > > > > Gesendet: Samstag, 08. April 2017 um 10:02 Uhr > > > > Von: "Roman Haefeli" <reduz...@gmail.com> > > > > An: pd-list <pd-l...@iem.at> > > > > Betreff: Re: [PD] [Gem] Modifying single pixel of pix image > > > > > > > > On Sam, 2017-04-08 at 08:29 +0200, Christof Ressi wrote: > > > > > > > > > > If it can be on the GPU, use a fragment shader! Do you work > > > > > with a > > > > > formula or do you set the alpha values by hand? > > > > By Hand (maybe later by a formula). Is it possible? > > > > > > > > The idea is to have two overlaying images. The visible one > > > > slowly > > > > decomposes over time so that the image behind appears. I > > > > thought about > > > > setting alpha to for more and more pixels as a way to decompose > > > > the > > > > front image. Maybe there is another/better way? > > > > > > > > Roman > > > > > > > > > > > > > > > > > > > > > > > > > Gesendet: Freitag, 07. April 2017 um 23:39 Uhr > > > > > > Von: "Roman Haefeli" <reduz...@gmail.com> > > > > > > An: pd-list@lists.iem.at > > > > > > Betreff: [PD] [Gem] Modifying single pixel of pix image > > > > > > > > > > > > Hi > > > > > > > > > > > > Is it possible to manipulate a single pixel of a an image > > > > > > loaded by > > > > > > [pix_image]? Specifically, I'd like to change the alpha > > > > > > value of > > > > > > certain pixels. It doesn't matter to me whether the > > > > > > manipulation > > > > > > happens in the pix realm or the GL realm. Currently I can > > > > > > think > > > > > > only of > > > > > > cumbersome ways like using [pix_dump] -> [pix_set] and > > > > > > applying the > > > > > > manipulation to the largish list passed between them. Or by > > > > > > using > > > > > > [pix_pix2sig~] -> [pix_sig2pix~] which is basically the > > > > > > same, but > > > > > > would > > > > > > allow to do the manipulation on a table. > > > > > > > > > > > > Roman > > > > > > _______________________________________________ > > > > > > Pd-list@lists.iem.at mailing list > > > > > > UNSUBSCRIBE and account-management -> https://lists.puredat > > > > > > a.info/l > > > > > > istinfo/pd-list > > > > > > _______________________________________________ > > > > Pd-list@lists.iem.at mailing list > > > > UNSUBSCRIBE and account-management -> https://lists.puredata.in > > > > fo/listinfo/pd-list > > > > > > > _______________________________________________ > > > Pd-list@lists.iem.at mailing list > > > UNSUBSCRIBE and account-management -> https://lists.puredata.info > > > /listinfo/pd-list > > > > > _______________________________________________ > > Pd-list@lists.iem.at mailing list > > UNSUBSCRIBE and account-management -> https://lists.puredata.info/l > > istinfo/pd-list > > > _______________________________________________ > Pd-list@lists.iem.at mailing list > UNSUBSCRIBE and account-management -> https://lists.puredata.info/lis > tinfo/pd-list
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list