cocos2d-x混合BlendFunc的使用
1、什么是混合模式 “混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。 说的具体一点,就是把某一像素位置上原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。 新图片颜色被称作“源颜色”,而屏幕上已存在的图片颜色则被称作“目标颜色”。 OpenGL会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后相加,这样就得到了新的颜色。 2、如何混合的 颜色信息的四个分量(红,绿,蓝,透明度) (1)“源颜色” :(Rs,Gs,Bs,As) (2)“目标颜色”:(Rd,Gd,Bd,Ad) (3)“源因子” :(Sr,Sg,Sb,Sa) (4)“目标因子”:(Dr,Dg,Db,Da) 那么混合产生的新颜色可以表示为:(Rs*Sr + Rd*Dr,Gs*Sg + Gd*Dg,Bs*Sb + Bd*Db,As*Sa + Ad*Da) 如果颜色的某一分量超过了1.0,则它会被自动截取为1.0,不需要考虑越界的问题。 3、部分混合因子 4、使用方法 Sprite精灵类中有一个设置混合方式的函数setBlendFunc(BlendFunc),另外混合方式的属性值是以BlendFunc结构体作为数据的,定义方式为:{ '源因子','目标因子' }。 混合方式可用于精灵纹理图片颜色信息的混合与叠加。 前面文章中写到过创建教学遮罩层,就使用了混合模式 :用CCRenderTexture与BlendFunc制作游戏教学时使用的黑色覆盖层 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |