osg::BlendFunc

原创 2007年09月12日 15:01:00

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

 

OSG对象设置透明

网格对象的透明设置: //方法1 osg::ref_ptr mat = new osg::Material; mat->setDiffuse(osg::Material::Front_AND_BACK...

关于cocos2d-js中使用 ClippingNode 以及 BlendFunc 来实现遮罩

关于ClippingNode 以及 BlendFunc 来实现遮罩  1. ClippingNode实现遮罩 首先要准备 一张png有透明度的图片  一张想要被遮住的图片 ...

cocos2d 制作动态光晕效果基础 —— blendFunc

分类: iOS开发重用 iPhone游戏开发 Cocos2d框架 iOS开发性能提升 2012-07-28 03:06 13312人阅读 评论(10)收藏 举报 dstshader游戏算法bl...

Cocos2d-x v3.X的颜色混合BlendFunc使用详解

1、概念详解 “颜色混合”是指两种颜色的叠加,在新图片渲染到屏幕上的时候,将根据新图片的红、绿、蓝和透明度值与已加载屏幕上的图片颜色信息重新融合。 1)源颜色:新图片成为源颜色 ...
  • yhhwatl
  • yhhwatl
  • 2017年04月26日 22:31
  • 604

Cocos2dx BlendFunc以及用其来实现裁切出不同形状的精灵

1、概念  “混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。  说的具体一点,就是把某一像素位置上原来的...

Cocos2d-x v3.X的颜色混合BlendFunc使用详解

1、概念详解 “颜色混合”是指两种颜色的叠加,在新图片渲染到屏幕上的时候,将根据新图片的红、绿、蓝和透明度值与已加载屏幕上的图片颜色信息重新融合。 1)源颜色:新图片成为源颜色 ...

cocos2d 制作动态光晕效果基础 —— blendFunc

最近的项目要求动态光晕的效果。 何谓动态光晕?之前不知道别人怎么称呼这个效果, 不过在我看来,“动态光晕”这个名儿起的还是蛮不错的。 动态光晕就是在背景图片的上面蒙上一层光照。。。 但是这个光...
  • yang3wei
  • yang3wei
  • 2012年07月28日 03:06
  • 20738

cocos2d 制作动态光晕效果基础 —— blendFunc

最近的项目要求动态光晕的效果。 何谓动态光晕?之前不知道别人怎么称呼这个效果, 不过在我看来,“动态光晕”这个名儿起的还是蛮不错的。 动态光晕就是在背景图片的上面蒙上一层光照。。。 ...
  • sndybo
  • sndybo
  • 2014年09月16日 09:30
  • 424

----*cocos2d 制作动态光晕效果基础 —— blendFunc

最近的项目要求动态光晕的效果。 何谓动态光晕?之前不知道别人怎么称呼这个效果, 不过在我看来,“动态光晕”这个名儿起的还是蛮不错的。 动态光晕就是在背景图片的上面蒙上一层光照。。。 但是这个光...

OSG学习:基本几何体绘制示例

绘制并渲染几何体主要有如下3大步骤: 1.创建各种向量数据,如顶点、纹理坐标、颜色和法线等。需要注意的是,添加顶点数据时主要按照逆时针顺序添加, 以确保背面剔除的正确。 2.实例化一个几何体对象(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:osg::BlendFunc
举报原因:
原因补充:

(最多只允许输入30个字)