Generalizes shader framework

Simple redshift example is now working. Texture initial conditions
don't appear to hold for some reason, which is only an issue for
the gravity shader.