I've noticed alpha blending tends to wash out my textures and wrote a little test:
The left image is an alpha-blended PNG using (SRC_ALPHA,ONE_MINUS_SRC_ALPHA). The other premultiplies the texture's rgb with alpha in the shader and then blends with (ONE,ONE_MINUS_SRC_ALPHA). How come they look different?
I would expect the outcome to be the right image, the left one looks washed out. I can't think of a reason for the discrepancy other than some gamma correction happens on the fragment before the blending function gets to it. Context premultipliedAlpha is set to false, are there other context flags for gamma correction?