位置: 编程技术 - 正文

【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函数)

  • 所得税汇算清缴招待费扣除标准
  • 房地产销售土地属于什么收入
  • 个人独资企业要承担无限责任吗
  • 公司缴税怎么计算的
  • 吊车租赁有限公司
  • 融资租赁担保余值
  • 增值税减免税款怎么算
  • 一般纳税人抵扣进项税分录
  • 出口退税普票
  • 没开发票的收入可以不入账吗
  • 物业代收费:有关法律
  • 房屋租赁收入怎么做账
  • 售后回租涉税
  • 劳务收入个税的计算方法
  • 收到的货品与实体不符
  • 无法确认退货率时,差错更正为啥不反转增值税
  • 企业亏损会影响利润吗
  • 税务社保扣取300干嘛的
  • 个税手续费需要开具发票吗
  • 已做了进项的发票金额错了怎么处理
  • 人力资源服务差额
  • 申报更正退税增值税申报表如何反应
  • 个体户生产所得税怎么计算
  • 对个体工商户个人的认识
  • 固定资产报废相关规定
  • 物业公司收取电费加价依据
  • 个税经营所得申报常见问题答疑
  • win10家庭最新版本
  • rcapi.exe - rcapi是什么进程 有什么用
  • 有什么办法可以快速减肥
  • 先开票后发货开票时确认收入
  • php readdir函数
  • 撤销与恢复快捷键分别是什么
  • php可以和iis配合运行吗?
  • npm ERR! code E404 在vscode安装插件时报错的解决方案
  • 物资销售收入
  • java代理有几种方式
  • linuxless命令查看文件
  • 企业收到发票冲销怎么办
  • 餐饮服务专票可以抵税吗
  • 普票3个点可以抵扣吗
  • 城镇土地使用税每年都要交吗
  • 补缴教育费附加免征滞纳金
  • 租厂房需要去缴房产税吗
  • 公司举办活动方案
  • 公司性质和单位性质的区别
  • 揭秘蒙娜丽莎25恐怖之处
  • 农副产品收购分录
  • 扫码开票怎么弄
  • 什么叫增值入股
  • 固定资产的折旧方法有哪些
  • 长期借款短期利息怎么算
  • 进项发票认证多了留抵多久
  • 挂靠地址如果被查了应该怎么处理?
  • 加油票抬头开错了
  • 银行承兑汇票怎么看
  • 开一般户需要什么理由
  • 公司应收票据增加意味着什么
  • 会计账簿按外表可分为
  • aspnet数据库访问
  • mysql进阶之路
  • sqlserver数据库怎么导出
  • phpstudy中phpmyadmin无法访问
  • fedora phpMyAdmin 安装方法及介绍
  • 重庆四日游最佳攻略超详细
  • win10怎么关闭securboot
  • Win10 Mobile 10572 预览版已修复和已知问题汇总
  • 硬盘安装xp系统安装教程
  • 重装系统开机出现几个系统
  • 电脑微软拼音输入法
  • fragmentize
  • android按钮点击效果的实验报告
  • python模糊搜索字符串
  • linux如何一次性删除多个文件
  • ca证书怎么下载安装
  • 退休个人所得税专项附加扣除减免
  • 非经营性房屋具体指哪些?
  • 电子税务密码输入错误五次怎么办
  • 会计基础工作规范2024
  • 开增值税发票没有销售合同也要交印花税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设