位置: 编程技术 - 正文

cocos2d 颜色混合 ccBlendFunc 使用方法(cocos2d怎么用)

编辑:rootadmin

推荐整理分享cocos2d 颜色混合 ccBlendFunc 使用方法(cocos2d怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos 2d x,cocos2d场景切换,cocos2d怎么用,cocos2d怎么用,cocos 2d x,cocos2dx shader,cocos 2d x,cocos代码混淆,内容如对您有帮助,希望把文章链接给更多的朋友!

本节参考: “混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。

说的具体一点,就是把某一像素位置上原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。

新图片颜色被称作“源颜色”,而屏幕上已存在的图片颜色则被称作“目标颜色”。

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、混合因子

混合方式解释因子&#;GL_ZERO全部不用(0 , 0 , 0 , 0)GL_ONE全部使用(1 , 1 , 1 , 1)GL_SRC_COLOR使用源颜色(Rs , Gs , Bs , As)GL_DST_COLOR使用目标颜色(Rd , Gd , Bd , Ad)GL_ONE_MINUS_SRC_COLOR减去源颜色(1-Rs , 1-Gs , 1-Bs , 1-As)GL_ONE_MINUS_DST_COLOR减去目标颜色(1-Rd , 1-Gd , 1-Bd , 1-Ad)GL_SRC_ALPHA使用源颜色的透明度(As , As , As , As)GL_DST_ALPHA使用目标颜色的透明度(Ad , Ad , Ad , Ad)GL_ONE_MINUS_SRC_ALPHA减去源颜色的透明度(1-As , 1-As , 1-As , 1-As)GL_ONE_MINUS_DST_ALPHA减去目标颜色的透明度(1-Ad , 1-Ad , 1-Ad , 1-Ad)

4、使用方法

Sprite精灵类中有一个设置混合方式的函数setBlendFunc(BlendFunc),另外混合方式的属性&#;是以BlendFunc结构体作为数据的,定义方式为:{ '源因子' , '目标因子' }。

混合方式可用于精灵纹理图片颜色信息的混合与叠加。

4.1、混合方式创建

// //{ '源因子' , '目标因子' } BlendFunc cbl = { GL_SRC_ALPHA , GL_ONE };//cocos2d 颜色混合 ccBlendFunc 使用方法(cocos2d怎么用)

4.2、静态常量(常用混合方式)

// const BlendFunc BlendFunc::DISABLE = {GL_ONE, GL_ZERO}; const BlendFunc BlendFunc::ALPHA_PREMULTIPLIED = {GL_ONE, GL_ONE_MINUS_SRC_ALPHA}; const BlendFunc BlendFunc::ALPHA_NON_PREMULTIPLIED = {GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA}; const BlendFunc BlendFunc::ADDITIVE = {GL_SRC_ALPHA, GL_ONE};//

4.3、混合方式举例

////目标图片,已存在于屏幕上 Sprite* sp1 = Sprite::create("red.jpg"); sp1->setPosition(mysize/3); this->addChild(sp1); //源图片,新图片 Sprite* sp2 = Sprite::create("green.jpg"); sp2->setPosition(mysize/3.0*2.0); this->addChild(sp2); //混合方式,新图片渲染时的混合方式 //{ 源因子 , 混合因子 } BlendFunc cbl = { GL_SRC_ALPHA , GL_ONE }; sp2->setBlendFunc(cbl);//

4.4、如下图所示

5、混合方式举例

(1){ GL_ONE , GL_ZERO }

(2){ GL_ZERO, GL_ONE }

(3){ GL_ONE, GL_ONE }

(4){ GL_SRC_ALPHA , GL_ONE } (比较常用)

和上图一样?是因为“源颜色”的透明度为:1。

本文出自 “夏天的风” 博客,请务必保留此出处

(1)cocos2d-x-2.2.4搭建windows开发环境 Cocos2d-x-2.2.4搭建windows环境软件需求Windows系统(windows7或之后的系统);cocos2d-x-2.2.4压缩包;python安装包(推荐使用2.7.3版本);文本编辑工具(不推荐

cocos2dx关卡选择界面设计 重点内容做游戏时候经常用到关卡选择,写了个关卡选择界面逻辑类,关卡解锁,关卡类型显示,打过的关卡星级评定,一共六大关,每个大关个小关

这是一个打酱油的Blog 递归获取子节点Node*HelloWorld::seekFromRootByName(Node*root,std::stringname){if(!root)returnnullptr;if(root-getName()==name)returnroot;constautoarrayNode=root-getChildren();for(autochild:arrayN

标签: cocos2d怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/368814.html 转载请保留说明!

上一篇:Cocos2dx 实现擦除 橡皮擦 刮奖 效果的实现(cocos2d drawcall)

下一篇:(1)cocos2d-x-2.2.4搭建windows开发环境

  • 企业收到退税款怎么处理
  • 个税走什么科目
  • 房地产开发公司排名
  • 合伙企业分配利润如何纳税
  • 兼职人员工资需要申报个税吗
  • 公司福利可以抵扣所得税吗
  • 发票没交税可以退税吗
  • 增值税零申报附加税费情况表没发保存
  • 多余的实收资本可以转到其他应付款吗
  • 台港澳与境内合资企业和央企哪个好
  • 建筑业营改增前后区别
  • 认证发票密文有误不能抵扣如何处理?
  • 企业收到赔偿款要交税吗
  • 挂应付账款之后发现用现金付款如何调整?
  • 个税的滞纳金怎么算
  • 建筑安装工程承包合同
  • 委托贷款利息收入账务处理
  • 计提固定资产减值准备属于什么支出
  • 企业房产税如何申报缴纳
  • 私人转公账可以吗
  • 把水费开成物业费发票有什么风险吗?
  • 员工报销医药费计入什么费用
  • 一次性发放几个月的工资怎么申报
  • 离职补偿金要交个税的例子
  • 汇算清缴补交需要调报表吗
  • 所得税预缴资产怎么算
  • 暂估发票未到年报怎么调
  • 建安企业外地项目预缴增值税
  • 确认坏账损失的分录怎么做
  • 个人所得税0元算不算缴税
  • 诉讼费做账科目
  • 贴现利息计算器
  • 安置房项目需要环评吗
  • kcleaner.exe是什么
  • win10提示病毒
  • php字符串定义
  • 上月抵扣的发票怎么开
  • 计提坏账可以冲回吗
  • 一公顷等于多少千米
  • 技术股如何分红交易
  • 持有至到期减值准备是什么科目
  • 劳动仲裁的调解款要扣税吗
  • php关闭错误报告
  • 为什么税前利润加可抵扣暂时性差异
  • 油卡预付卡发票能入费用吗怎么入账
  • linux调试工具有哪些
  • thinkphp跨域
  • 处置固定资产科目
  • 其他综合收益转入留存收益还是投资收益
  • 物流破损拒收的理由
  • 装修公司开增值税专用发票几个点
  • 会计科目设置怎么操作
  • 金蝶软件怎么录入发票号
  • 建设工程的材料质量检测由谁负责
  • sql server复制表数据
  • sqlserver2008安装步骤图文
  • 未分配利润转增股本 企业所得税
  • 无法收回的应收账款可以税前扣除吗
  • 样板房装修可以住人吗
  • 怎样分辨假钱
  • 预付卡开不征税发票
  • 年末进项大于销项怎么结转
  • mysql 左链接 右链接
  • win8固态硬盘
  • centos8 php7.4
  • rtk api error=3
  • win7系统误删文件可以恢复吗
  • 怎么设置永久禁止下载拼多多
  • windows10预览版是什么
  • perl怎么把字符串变为数字
  • javascript HTML5 canvas实现打砖块游戏
  • js设计模式书
  • unity3d物体移动代码
  • 几个常用的微课网站
  • jquery ui教程
  • python 终端
  • 一级稽查体制
  • 失业金存在多个账户
  • 公司零申报可以交社保吗
  • 上海个税100万元工资多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设