The less math you do the better for the performance.
There are really nothing much you can do to make it light as you have to do what you have to do. The only thing I can say is:
- Make sure you dont have too many options in one material. The fewer parameters the better.
- Blending based on vertex colour is fine, and you can even let the textures be parameters, but keep the number as low as you can.
- Try to avoid using translucency
- Depending on the accuracy you want, think about doing the calulations in the vertex shader.