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
osg::BlendFunc来设置透明度的更多相关文章
- css中怎么设置透明度的问题
小伙伴们是不是在找怎么样去设置页面的透明度的方法呢...别找了,我这儿就有,而且肯定够用了. 我自己会用到的就有两种,可以和大家分享一下. 1.用opcity的方法去设置透明度.代码如下: .div ...
- IOS 设置透明度导致底层View始终可见
正确效果如图:下面的toolBar应该看不见它下面的View, 避免方法:[self.view addSubView:aSubView];这个aSubView一定不能设置不透明度,应将其设置为Cle ...
- android 控件设置透明度
问题:java文件中引用组件设置透明度:mGuideLayout.getBackground().setAlpha(125); 一直报null 修改办法:对应的布局文件中添加 android:back ...
- OSG环境变量设置
osg中需要设置一些环境变量设置,如 OSG_FILE_PATH:此变量设置模型数据的目录 OSG_SCREEN: 此变量设置显示模型是在单屏幕还是多屏幕,1为单屏幕 OSG_WINDOW: 此变量设 ...
- cocos2dx对所有子节点设置透明度
看到cocos2dx2.2.5发布了,修复了输入框的bug,于是我们的项目也升级到了2.2.5, 升级过程还是比较顺利,没想到后来发现设置透明度无效了. 经过调试发现要调用一下setCascadeOp ...
- java 图片加水印,设置透明度。说明非常具体
package com.yidao.common; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...
- sublime text3使用插件SublimeTextTrans设置透明度
推荐一款在windows上设置sublime2和sublime3背景透明度的插件:SublimeTextTrans, 下载地址:https://github.com/vhanla/SublimeTex ...
- (求助)对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知
对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知,有谁碰到过这样的问题?????? 测试了以下三款手机,结果如下: 1.android 4.4.2: 不受影响 2 ...
- C#给图片加水印,可设置透明度
C#给图片加水印,可设置透明度,设置水印的位置可以看一下上一篇哈 /// <summary> /// Creating a Watermarked Photograph with GDI+ ...
随机推荐
- 新知道一个 端对端加密 Signal protocol
看 socketio Sponsors 列表中的小蓝鸟,发现网站中有使用 x-jquery-tmpl [翻译]WhatsApp 加密概述(技术白皮书) 知道一个叫 Signal 协议 的端对端加密 端 ...
- Python自学:第四章 在for循环结束后执行一些操作
# -*- coding: GBK -*- magicians = ['alice', 'david', 'carolina'] for magician in magicians: print(ma ...
- yum -y install python-devel
yum -y install python-devel的时候报错如图: Could not retrieve mirrorlist http://mirrorlist.centos.org/?rele ...
- 【转载】TCP拥塞控制算法 优缺点 适用环境 性能分析
[摘要]对多种TCP拥塞控制算法进行简要说明,指出它们的优缺点.以及它们的适用环境. [关键字]TCP拥塞控制算法 优点 缺点 适用环境公平性 公平性 公平性是在发生拥塞时各源端(或同一源端 ...
- 阿里第一颗芯片问世,平头哥发布最强AI芯片含光800
阿里巴巴第一颗自研芯片正式问世.9月25日的杭州云栖大会上,达摩院院长张建锋现场展示了这款全球最强的AI芯片——含光800.在业界标准的ResNet-50测试中,含光800推理性能达到78563 IP ...
- POJ 3134 - Power Calculus
迭代加深 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<al ...
- Excel VBA 连接各种数据库(三) VBA连接SQL Server数据库
本文主要涉及: VBA中的SQL Server环境配置 VBA连接SQL Server数据库 VBA读写SQL Server数据 如何安装SQL Client 系统环境: Windows 7 64bi ...
- System.DateTime.cs
ylbtech-System.DateTime.cs 1. 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5 ...
- js中一个标签在按顺序执行没有被读取到时可以用window.onload
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> <!DOCTYPE html PUBLIC " ...
- java-day08
继承概念 继承是多态的前提,主要用于解决共性抽取 特点 子类可以拥有父类的内容,子类也可以有自己的专属内容 格式 public class 父类{} public class 子类 extends 父 ...