is it possible to use pix_ operations like pix_blur on the content of a texture generated with gemframebuffer?
-
Blur gemframebuffer?
-
short answer: no.
medium answer: you could transfer from the GPU to the CPU to use pix_ and back to the GPU again, but it'll be sloooow.
long answer: you can do similar things, but it's more work: you can use fragment shaders (which you will probably have to write yourself
- ) to manipulate textures on the GPU, which should perform much quicker than doing the same on the CPU (as the pix_ objects do). I've not used shaders in Gem (prefer to do my OpenGL stuff in plain C instead of Pd), but there should be some ping-pong shader examples (probably "game of life"?).
- the good news is that writing fragment shaders for image processing is normally easier than writing the same algorithms for a CPU, and if you have a CPU algorithm like the pix_ objects you can usually convert it..
-
I haven't done much with OpenGL shaders, but I played around with them in Gem a little bit and found that modifying OpenGL shaders written for Jitter to work in Gem requires only relatively basic knowledge. And, there are a lot more shaders out there written for Jitter than Gem.
You can find some examples of basic shader implementation in the Gem help and example patches bundled with Pd-extended.
-
thanks guys
@claudius maximus
i somehow forgot that pix operations are done by the cpu...stupid me. i will have a look at glsl in the future as im bumping my head against this wall frequently, thanks for your accurate explanation.what i have in mind is multipass rendering for depth of field and motionblur, if anybody knows some shader wich can blend multiple gemframebuffer textures into one image i would be very happy.
in the meantime i will continue with the orange book.