当我使用OpenGL绘制半透明纹理时,看起来我将它们与EAGLView backgroundColor混合在一起。
((EAGLView*)my_view).backgroundColor = [UIColor redColor];
opaque属性设置为YES。
现在图像看起来是红色,当我变成黑色时变成灰色(与黑色混合),变成白色变成白色(甚至是半透明的黑色)。 它能是什么?
我的混合功能设置为:src BFP_SRC_ALPHA,dest ONE_MINUS_SRC_ALPHA 我也试过(可能像预乘alpha): src ONE dest GL_ONE_MINUS_SRC_ALPHA - 它给出了很好的结果,但是在绘制半透明四边形(不是纹理)时遇到了问题。
答案 0 :(得分:0)
问题在于预乘alpha使用src ONE dest GL_ONE_MINUS_SRC_ALPHA,并且args必须与预乘alpha一起glColor4f(r * a,g * a,b * a,a)