In general, does all this need to be done in the shader each frame?  It only depends on the uniforms and texture coordinates, right?  Can we just use a texture?  Or render to texture?  Could be a cool use for #751.