美文网首页
Alpha Blending的意义

Alpha Blending的意义

作者: sakura_1 | 来源:发表于2020-01-07 15:50 被阅读0次

    原文链接:https://www.cnblogs.com/nanwei/p/7281789.html

    Alpha Blending 即Alpha混合

    Blending 就是处理透明度的,处理光栅化最后阶段,显示在屏幕上的颜色

    1 Blend Off 关闭alpha混合

    2 混合公式:Blend SrcFactor DstFactor
    SrcFactor 混合源系数 Shader当前计算点的颜色的混合系数
    DstFactor 混合目标系数 当前点之前累积的颜色的混合系数
    最终颜色 = (Shader计算出的点颜色值 * 源系数)+(点累积颜色 * 目标系数)

    3 常用的混合系数
    one 1(仅显示RBG值)
    zero 0(不参与混合,为(0,0,0,0))
    ScrColor 源的RGB值
    ScrAlpha 源的alpha值
    DstColor 目标的RGB值
    DstAlpha 目标的alpha值
    OneMinusSrcColor 1减源RGB值
    OneMinusScrAlpha 1减源alpha值
    OneMinusDstColor 1减目标RGB值
    OneMinusDstAlpha 1减目标alpha值

    4 几种混合方式案例
    Blend zero one            仅显示目标的RGB 无透明通道处理(alpha为1)
    Blend one zero           仅显示源的RGB 无透明通道处理(alpha为1)
    Blend one one           目标和源的RGB值相加,无透明通道处理(alpha为1)
    Blend ScrAlpha zero        仅显示源的颜色(处理透明通道),完全透明的地方显示(0,0,0,1)
    Blend ScrAlpha OneMinusScrAlpha 源RGB * alpha + 目标RGB * (1 - alpha)

    5 颜色计算规则
    (注:r,g,b,a,x,y,z取值范围为[0,1])
    (r,g,b)* a = (r * a , g * a , b * a)
    (r,g,b)* (x,y,z) = (r * x , g * y , b * z)
    (r,g,b)+ (x,y,z) = (r + x , g + y , b + z)
    (r,g,b)- (x,y,z) = (r - x , g - y , b - z)

    相关文章

      网友评论

          本文标题:Alpha Blending的意义

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