关闭

osg::BlendFunc

标签: dst
2332人阅读 评论(0) 收藏 举报
分类:

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 

 

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作为因子,实际上相当于不使用这种颜色参与混合运算。

 

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:273276次
    • 积分:2872
    • 等级:
    • 排名:第12384名
    • 原创:47篇
    • 转载:34篇
    • 译文:2篇
    • 评论:55条
    文章分类
    最新评论