Distorting textures with flow maps

http://teckartist.com/?page_id=107

should do what you need.