程序运行效果图:
蓝色的被设置了alpha 100 结果蓝色的透到了桌面理想效果:Ps处理过的
蓝色的alpha 100 但是不会透到桌面 而且还可以与 绿色混合在这里
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
glColor4ub(0,0,255,100);
glRecti(0,0,100,100);
glDisable(GL_BLEND);
今天纠结了一天实在不知道如何才能实现第二幅图那效果

解决方案 »

  1.   

    也就是说
    目标与源进行 混合 第四位(alpha通道) 值为 0xff
      

  2.   

    2次混合解决了
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glColor4ub(0,0,255,125);
    glRecti(0,0,100,100);
    glBlendFunc(GL_DST_COLOR,GL_ONE);
    glColor4ub(0,0,0,255);
    glRecti(0,0,100,100);
    glDisable(GL_BLEND);
    顺便求一下不用2次混合解决的办法