basic framework for water and particle shaders