3

INTERPOLATEのαの値しか使われないことに気がつかなかったorz
αはずっと1.0f固定でやってたよw

Arg0*Arg2.a+Arg1*(1-Arg2.a)
Arg0*0.5+1.0*(1-0.5)
Arg0*0.5+0.5

glColor4( 1,1,1,1 );
float blend[4] = { 1.0f, 1.0f, 1.0f, 0.5f,};
glTexEnvfv( GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, blend );

これで0.5〜1.0に収めることができました!
CONSTANTは全ユニットを通して1個しか設定できないっぽい。