I just open sourced ofxPostProcessing, it gives you an easy way of putting together a chain of GLSL post-processing effects. At the moment, it comes with the following effects (some ported from other sources and some original) that I’ll gradually add to over time:

  • Bloom

  • Convolution

  • Depth of field (with bokeh)

  • Depth of field alternative (more features but heavier)

  • Frei-Chen Edge Detector

  • FXAA anti-aliasing

  • Frei-Chen Edge Detector

  • Kaleidoscope

  • Noise warp

  • Pixelate

More info here: www.neilmendoza.com/ofxpostprocessing


How do I set uniforms manualy?

(sorry for the necroposting)

When you create a post processing pass, you get a shared pointer to that RenderPass returned that you can keep a reference to somewhere in your code, for example:

KaleidoscopePass::Ptr kaleido;

kaleido = post.createPass<KaleidoscopePass>();

You can then call the getters and setters in the RenderPass to change variables, for example:

kaleido->setSegments(kaleido->getSegments() + 0.1);

When I get some time, I’m going to integrate ofParameter into the addon so that you can get an ofParameterGroup back from a RenderPass.


cool going to try that, brb :stuck_out_tongue:

Thanks that works well, i just have to figure out what some variables do hehe.

was a bit lost trying to get the bloom shader with less range, i had to change some pivate stuff to public to be able to do so but it works.


Great add-on Neil. I’m using it for a project but can’t seem to use ofBackgroundGradient or use an ofImage background. Any ideas on how to do this?

Nice examples. I have the same question @jamesalliban has done.
How to preserve the background? for instance

ofBackgroundGradient(colorOne, colorTwo, OF_GRADIENT_CIRCULAR);

I tried post.getPasses().at(0)->setEnabled(false); before the background but ofcourse it doesn’t work.