美文网首页
glsl简单的颜色混合算法

glsl简单的颜色混合算法

作者: 四是二非 | 来源:发表于2018-05-23 14:11 被阅读237次

1、multiply:

result=base*blend;

2、screen:

result=vec4(1.0)-((vec4(1.0)-blend)*(vec4(1.0)-base));

3、darken:

result=min(blend,base);

4、lighten:

result=max(blend,base);

5、difference:

result=abs(base-blend);

6、negation:

result=vec4(1.0)-abs(vec4(1.0)-base-blend);

7、exclusion:

result=base+blend-(2.0*base*blend);

8、overlay:

# per channel:

if(base<0.5){

        result=2.0*base*blend;

    }else{

result=vec4(1.0)-2.0*(vec4(1.0)-blend)*(vec4(1.0)-base);

}

9、hard light:

# per channel:

if(blend<0.5){

        result=2.0*base*blend;

    }else{

result=vec4(1.0)-2.0*(vec4(1.0)-blend)*(vec4(1.0)-base);

}

10、soft light:

# per channel:

if(blend<0.5){

        result=2.0*base*blend+base*base-2.0*base*base*blend;

    }else{

result=2.0*sqrt(base)*blend-sqrt(base)+2.0*base-2.0*base*blend;

}

11、dodge:

result=base/(vec4(1.0)-blend);

12、burn:

result=vec4(1.0)-(vec4(1.0)-base)/blend;

相关文章

网友评论

      本文标题:glsl简单的颜色混合算法

      本文链接:https://www.haomeiwen.com/subject/ykerjftx.html