Shader emulating ink spread/dispersion

Hi everyone. I’ve been working on a glsl shader to emulate the spreading of ink from an initial mass, and applying it to an image. I was given a hand with much of the math over at the openGL forums, but I am working on tweaking it and getting it to work with openframeworks.

While discussing it, I was told that I would be best to use “the textures should ideally use either floating-point or at least 16-bit normalised values”. I don’t know how to apply this information to my shader. Is this information that is defined in the image that I pass into the shader? If so, how would I properly format my file for this?

Also, I don’t appear to be getting much actual dispersion, now that I actually have the shader displaying anything. I can tell the effect is almost there, or at least the underlying logic seems to work, but I need to really magnify the effect, make it spread out far, or introduce some sort of variable that represents the viscosity of the ink or something.

Does anyone have any advice for this? If this shader becomes or looks like anything you’d like to use, feel free. Thanks!

main.cpp
ofApp.cpp
ofApp.h
inkspread.frag
inkspread.vert

hello,

did you have a look at this addon ?

I haven’t seen this! Looks beautiful, might help to look through it for ideas. Trying to hone my skills in glsl, but looking at as many examples as possible helps.