位置: 编程技术 - 正文

【Cocos2d-x】图片描边的一种比较好的shader实现方法(cocos2d官网)

编辑:rootadmin

推荐整理分享【Cocos2d-x】图片描边的一种比较好的shader实现方法(cocos2d官网),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2d怎么用,cocos2dx视频教程,cocos2d-x教程,cocos 2d x,cocos2dx官方教程,cocos2dx 图集,cocos2dx 图集,cocos 2d x,内容如对您有帮助,希望把文章链接给更多的朋友!

图片描边需求如下:

1. 可指定描边宽度 2. 可指定描边颜色3. 可用于字体

图片描边我所知道的方式有以下几种:

1. Cocos2d-x 3.x中,字体用FreeType库,字体描边可以用FreeType自带的描边功能,实际效果没测过,但只能用于字体。

2. 用RenderTexture,方法大概是把原图做一圈的偏移,渲染到同一张纹理上,他们相隔中心点的距离都是r,最后再把自己渲染到中间,核心代码大概这样:

这种方法可以作为一个比较好的解决方案,但是我认为这种方式在生成描边图片时,需要绘制多个图片,效率不是很好。

3. Cocos2d-x 3.x的ShaderTest有个描边的例子,是用shader实现的,不过那个程序有些不友好:描边宽度不是传像素进去,而是一个0~1的数字,是一个比例,就是说大的图片描边大,小的图片描边小,而且同一个图片不同位置的描边也宽窄不一(这在长比宽大很多的图片尤其明显),而且描边的颜色也深浅不一。

以下我分享一种我认为比较好的描边算法:

在片段着色器里面,对于每个像素:1. 如果它是不透明的像素,则不管,维持原本颜色;2. 如果透明,是度判断它四周有没有不透明的像素,如果有,则把它设成描边颜色,否则保持透明。

我为代码加了比较详细的注释,希望大家能理解

【Cocos2d-x】图片描边的一种比较好的shader实现方法(cocos2d官网)

stroke.fsh:描边片段着色器

我的utilShader.cpp:

调用的地方:

效果:

效果还算是比较好的,经测试,此算法在安卓多个机型上也表现良好。

这样一套完整的描边算法就完成了,如果描述有不当之处,或有更优方法,欢迎吐槽。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

谢谢complex_ok的吐槽,应该预先计算好sin和cos&#;,无需每次计算。优化后的 stroke.fsh 如下:

本帖地址:

glViewport()函数和glOrtho()函数的理解 在OpenGL中有两个比较重要的投影变换函数,glViewport和glOrtho。glOrtho是创建一个正交平行的视景体。一般用于物体不会因为离屏幕的远近而产生大小的变

【Cocos2d-x】shader语法注意事项 1.不要用隐式类型转换例子1:inti=5;//没问题floatr=i*0.;//有问题例子2:floata=0;//定义和赋值float不能不加.0以上两个例子在OpenGL上没任何问题,但在移动端

OpenGL Framebuffer Object (FBO) 在OpenGL中,OpenGLContext有一个默认的FBO用来绘制图像,但是我们也可以创建新的用户定义的Framebuffers,这样我们可以绘制到自定义的framebuffer,而不会影响到

标签: cocos2d官网

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

上一篇:UIView基类的简述(uiview继承哪个类)

下一篇:glViewport()函数和glOrtho()函数的理解(glortho函数)

  • 信息化投入包括手机吗
  • 什么是增值税一般纳税人
  • 税收缴款书现在还有吗
  • 源泉扣税什么意思
  • 小规模房地产企业税收优惠政策
  • 红字发票申请表盖什么章
  • 劳务公司开票税收分类
  • 开发票产品名称
  • 哪些收入减免所得税
  • 保险赔款个人所得税计算
  • 银行代扣出口快递费用
  • 算材料成本的时候要算增值税吗?
  • 开票金额和实际金额不一致
  • 销售额增加10%什么概念
  • 免抵退税应退税额
  • 还在讨论“税务金四”上线?税务和银行要联手清查单位和个人账户了!
  • 个人对公益事业的认识与看法
  • 资产负债率怎么计算
  • 所得税补缴自查需要缴纳什么
  • 用友软件以前年度损益调整报表勾稽关系不对
  • 劳务报酬所得缴多少税
  • 公司员工驻外补贴政策
  • 公司贷款收入如何计算
  • 工资计提金额
  • 个税手续费返还政策文件
  • 增值税专票销售额
  • 企业会计制度政府补助
  • ue4 像素流并发
  • macbook隐藏
  • 工资申报怎么写
  • 笔记本电池消耗大怎么办
  • 送货上门需要其他费用吗
  • php读取php文件内容
  • 怎么编制资金平衡表格
  • javascriptjs
  • 企业在外地单位怎么交税
  • 浏览器加域名
  • 民非企业银行利息计入其他收入,那增值税申报吗
  • python正态分布采样
  • 上年多做了收入的事情
  • 固定资产减少如何处理
  • 小规模纳税人利润表季报
  • 企业所得税季度申报表季度平均值
  • 固定资产的处理属于日常业务的处理
  • 使用银行汇票的结算方式
  • 公司餐费怎么入账
  • 可供出售金融资产名词解释
  • 金税盘的初始密码一般是多少
  • 电脑开票怎么操作流程
  • 开票软件服务费计入什么会计科目
  • 现金支出业务的流程步骤包括
  • 会计账簿的种类包括总账明细账日记账和其他辅助性账簿
  • 总分类账的依据
  • 企业经营规模小的原因
  • sql server233错误
  • sqlserver数据类型怎么用
  • sql语句递归
  • win7登录设置
  • win10开机出现onekey ghost
  • 在wind
  • window10 左下角
  • winxp安卓
  • windowsxp怎么装windows7
  • win8怎么更改账户名称
  • win8的计算机在哪里
  • win8无线连接不可用怎么办
  • win7登录不进去
  • [置顶]游戏名 TentacleLocker
  • unity3D LineRender的使用
  • node定时任务框架
  • 批处理在windows中的典型应用
  • python怎么设置行号
  • unity获取物体的位置
  • 在python中的用法
  • jquery中常用动画方法有哪些
  • python结合了什么的高级语言
  • 江苏国税电子税务局网登录
  • 广西12366社保缴费APP
  • 首问责任制的概念
  • 一般纳税人申请流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设