use a shader to add noise instead of canvas+javascript