记录webp设置混合(setBlendFunc)出现的一个问题

来源:互联网 发布:淘宝美工要会什么软件 编辑:程序博客网 时间:2024/05/22 02:21

当两张webp的图片使用混合时会出现显示出来的颜色异常的问题,这个问题在3.6上会有,在2.x上并不会出现,很奇怪。同时也记录下在网上找到的一段文字:

OpenGL可以设置混合运算方式,包括加、减、取两者中较大的、取两者中较小的、逻辑运算等。下面用数学公式来表达一下这个运算方式。假设源颜色的四个分量(指红色,绿色,蓝色,alpha值)是(Rs, Gs, Bs,  As),目标颜色的四个分量是(Rd, Gd, Bd, Ad),又设源因子为(Sr, Sg, Sb, Sa),目标因子为(Dr, Dg, Db,  Da)。则混合产生的新颜色可以表示为:(Rs*Sr+Rd*Dr, Gs*Sg+Gd*Dg, Bs*Sb+Bd*Db, As*Sa+Ad*Da)。源因子和目标因子是可以通过glBlendFunc函数来进行设置的。glBlendFunc有两个参数,前者表示源因子,后者表示目标因子。这两个参数可以是多种值,下面介绍比较常用的几种。

  • GL_ZERO:     表示使用0.0作为因子,实际上相当于不使用这种颜色参与混合运算。

  • GL_ONE:      表示使用1.0作为因子,实际上相当于完全的使用了这种颜色参与混合运算。

  • GL_SRC_ALPHA:表示使用源颜色的alpha值来作为因子。

  • GL_DST_ALPHA:表示使用目标颜色的alpha值来作为因子。

  • GL_ONE_MINUS_SRC_ALPHA:表示用1.0减去源颜色的alpha值来作为因子。

  • GL_ONE_MINUS_DST_ALPHA:表示用1.0减去目标颜色的alpha值来作为因子。


0 0
原创粉丝点击