zoukankan      html  css  js  c++  java
  • osg::BlendFunc来设置透明度

     

    osg::BlendFunc介绍

          混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。
          假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。

    源因子和目标因子

           下面用数学公式来表达一下这个运算方式。假设源颜色的四个分量(指红色,绿色,蓝色,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)

    DST_ALPHA 

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

     

    DST_COLOR

     把目标颜色的四个分量分别作为因子的四个分量

     

    ONE 

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

     

    ONE_MINUS_DST_ALPHA 

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

     

    ONE_MINUS_DST_COLOR 

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

     

    ONE_MINUS_SRC_ALPHA 

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

     

    ONE_MINUS_SRC_COLOR 

    表示用RGB(1,1,1,1)减去源颜色的值来作为因子。

     

    SRC_ALPHA 

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

     

    SRC_ALPHA_SATURATE 

    (f,f,f,1); f=min(As,1-Ad)

     

    SRC_COLOR 

    把源颜色的四个分量分别作为因子的四个分量

     

    CONSTANT_COLOR 

    自定义的颜色作为因子

     

    ONE_MINUS_CONSTANT_COLOR 

    表示用RGB(1,1,1,1)减去自定义的颜色作为因子

     

    CONSTANT_ALPHA 

    自定义的alpha作为因子

     

    ONE_MINUS_CONSTANT_ALPHA 

    表示用1.0减去自定义颜色的alpha值来作为因子。

     

    ZERO

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

    更灵活的还有

     osg::BlendEquation

    常用的混合方程:

    S,D表示因子(见osg::BlendFunc),Cs和Cd表示源颜色和目标颜色

    RGBA_MIN 

    min(CsS,CdD)

    RGBA_MAX 

    max(CsS,CdD)

    ALPHA_MIN 

     

    ALPHA_MAX 

     

    LOGIC_OP 

     

    FUNC_ADD 

    CsS+CdD

    FUNC_SUBTRACT 

    CsS-CdD

    FUNC_REVERSE_SUBTRACT 

    CdD -CsS

    转载至http://blog.csdn.net/zhuqinglu/article/details/1782201

  • 相关阅读:
    Canvas与Image互相转换示例以及利用该技术实现微信长按自动识别二维码功能
    chrome浏览器无法安装非应用商店插件的解决办法
    用canvas绘制android机器人
    TortoiseGit保存用户名和密码的方法
    event对象的兼容性
    利用jQuery无缝滚动插件liMarquee实现图片(链接)和文字(链接)向右无缝滚动(兼容ie7+)
    jQuery动画的hover连续触发动画bug处理
    用jquery实现平滑的页面滚动效果
    实现段落文字两端对齐的css样式
    前端构建工具gulpjs的使用介绍及技巧(转)
  • 原文地址:https://www.cnblogs.com/tangmiao/p/7574906.html
Copyright © 2011-2022 走看看