OpenGL FBO ping-pong like behavior with jitter? is it possible?

booltox's icon

Greetings

I’m very new to the MAX/MSP environment so I apologize if this question is too rudimentary. But for my first MAX/MSP project I have run into a bit of problem that no level of google-ing seems to help.

I want to use a shader to iterate over a texture for a number of passes. Typically in the opengl world I would create two FBO objects and use the results of each pass as an input into the next one. Essentially I would ping-pong between them. In trying to do duplicate this behavior in MAX/MSP I have attempted to do this in a javascript node. The following code looks like it should work but it most definitely does not.

function bang()
{

radslab1.jit_gl_texture("tex1","texture");
radslab1.jit_gl_texture("tex0", "srcTexture");
radslab1.draw();

radslab0.jit_gl_texture("tex0", "srcTexture");

var i=0;
for (i = 0; i
{
if( i % 2 > 0 ){
radslab0.jit_gl_texture(radslab1.out_name,"texture");
radslab0.jit_gl_texture("tex0", "srcTexture");
radslab0.draw();
}else{
radslab1.jit_gl_texture(radslab0.out_name, "texture");
radslab1.jit_gl_texture("tex0", "srcTexture");
radslab1.draw();
}
}

mat.jit_gl_texture(radslab0.out_name);
// outlet(1, "jit_gl_texture", radslab0.out_name);
outlet(0, "jit_matrix", mat.name);

}

It doesn’t appear that the using the output from the previous slab as an input to the next is working as I excepted. The shader is working for a single pass but subsequent passes are not.

Looking trough the examples I haven’t found something that does this technique. I’m hoping that somebody might have some pointers or an obvious direction that I’m over looking.

Thanks in advance if anybody has any advice,
-Booltox