Multipass shader on a mesh

This might be a badly formed question, apologies in advance.

Is there such thing as a multipass shader for meshes? I have been scouring examples of ping pong shaders and they all seem to write to an FBO and then process the FBO. However I am wondering if I can use this same technique with meshes and retain the 3d geometry for the second pass as well.

Is there a way to store the output of a shader pass on a mesh to another mesh and then process it again?

Sure! You can do this with ofVboMesh, buffer objects and compute shaders. There’s examples/gl/computeShaderParticlesExample that shows how to do a single pass. This example only uses vertices and vertex colors, but you can naturally also store indices, texcoords and normals. For a second pass all you need to do is setup another compute shader that addresses the same binding points for your buffers as the first pass.