美文网首页
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