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

osg::BlendFunc来设置透明度的更多相关文章

  1. css中怎么设置透明度的问题

    小伙伴们是不是在找怎么样去设置页面的透明度的方法呢...别找了,我这儿就有,而且肯定够用了. 我自己会用到的就有两种,可以和大家分享一下. 1.用opcity的方法去设置透明度.代码如下: .div ...

  2. IOS 设置透明度导致底层View始终可见

    正确效果如图:下面的toolBar应该看不见它下面的View, 避免方法:[self.view  addSubView:aSubView];这个aSubView一定不能设置不透明度,应将其设置为Cle ...

  3. android 控件设置透明度

    问题:java文件中引用组件设置透明度:mGuideLayout.getBackground().setAlpha(125); 一直报null 修改办法:对应的布局文件中添加 android:back ...

  4. OSG环境变量设置

    osg中需要设置一些环境变量设置,如 OSG_FILE_PATH:此变量设置模型数据的目录 OSG_SCREEN: 此变量设置显示模型是在单屏幕还是多屏幕,1为单屏幕 OSG_WINDOW: 此变量设 ...

  5. cocos2dx对所有子节点设置透明度

    看到cocos2dx2.2.5发布了,修复了输入框的bug,于是我们的项目也升级到了2.2.5, 升级过程还是比较顺利,没想到后来发现设置透明度无效了. 经过调试发现要调用一下setCascadeOp ...

  6. java 图片加水印,设置透明度。说明非常具体

    package com.yidao.common; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...

  7. sublime text3使用插件SublimeTextTrans设置透明度

    推荐一款在windows上设置sublime2和sublime3背景透明度的插件:SublimeTextTrans, 下载地址:https://github.com/vhanla/SublimeTex ...

  8. (求助)对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知

    对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知,有谁碰到过这样的问题?????? 测试了以下三款手机,结果如下: 1.android 4.4.2: 不受影响 2 ...

  9. C#给图片加水印,可设置透明度

    C#给图片加水印,可设置透明度,设置水印的位置可以看一下上一篇哈 /// <summary> /// Creating a Watermarked Photograph with GDI+ ...

随机推荐

  1. PokerNet-poker recognition: 扑克识别 (6)

    文章目录 准备 最终结果 未来改进 准备 机器: Titan XP 12GB, 64GB RAM, 机器非常强,可靠. 下次有机会购买RTX 2080 Ti 试试 最终结果 错误率可以达到万分之一,非 ...

  2. InsightFace源码以及pre-train模型以及使用

    一下摘自:https://blog.csdn.net/Fire_Light_/article/details/79602705 论文链接:ArcFace: Additive Angular Margi ...

  3. 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?

    本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...

  4. Myeclipse从外部导入项目时,jsp和html页面中所有的onclick="return xx()"位置均出现cannot return from outside function() or method()错误

  5. python相关软件安装流程图解——linux 安装python3——Python-3.7.1

    请先确保已经安装了虚拟机 python相关软件安装流程图解——虚拟机安装——CentOS-7-x86_64-DVD-1810——CentOS-01下载 https://www.cnblogs.com/ ...

  6. (转)第04节:Fabric.js用路径画不规则图形

    在Canvas上画方形.圆形.三角形都是很容易的,只要调用fabric对应的方法就可以了,但这些都是规则的图形,如果你想画一个不规则的图形,这时候你可以用fabric.js提供的路径绘图方法.所谓路径 ...

  7. VS2010-MFC(对话框:一般属性页对话框的创建及显示)

    转自:http://www.jizhuomi.com/software/169.html 属性页对话框包括向导对话框和一般属性页对话框两类,上一节演示了如何创建并显示向导对话框,本节将继续介绍一般属性 ...

  8. 如何使用Python-GnuPG和Python3 实现数据的解密和加密

    介绍 GnuPG包提供用于生成和存储加密密钥的完整解决方案.它还允许您加密和签名数据和通信. 在本教程中,您将创建一系列使用Python 3和python-gnupg模块的脚本.这些脚本允许您对多个文 ...

  9. 基于token的验证

    认证.权限和限制 身份验证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制.然后 权限 和 限制 组件决定是否拒绝这个请求. 简单来说就是: 认证确定了你是谁 权限确定你能不 ...

  10. 6_2.springboot2.x整合Druid和配置数据源监控

    简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss Data ...