I haven't looked into this in detail but I think you could possibly also use glDrawElementsInstanced
. With this you would put your alpha values into a big uniform array and the instance index would somehow be passed to the shader. Check this out:
http://sol.gfxile.net/instancing.html