Cocos Creator 圆角矩形Shader

赞 

斯国一 斯国一

会有毛边吗?

个人感觉有轻微锯齿,在Cocos logo上测试感觉不太明显,但在纯白色精灵图上感觉有点大,可以先弄个demo看下效果

牛皮 plus! :crazy_face:

斯故一斯故一

都说 shader 代码里有 if 语句,会影响性能,实际上具体能影响多少呢?

厉害厉害呀

抗锯齿可以参考下iq的版本
https://www.shadertoy.com/view/4llXD7

1赞

既然你都提出问题了,我不回答怪不好的,那我就勉为其难的说句不知道吧 :expressionless:毕竟我也只是个刚入门的菜鸡

emmm,你可以试下在长方形上的效果,应该会出现椭圆形 :crazy_face:

感谢大佬指点,我去学习下 :partying_face:

有没有遇见过,shader 圆角后,替换 spriteFrame (微信头像),图片就飞了的问题?
image

没遇见过,我在摸索的过程中看他们都说关闭合图,不知道是否受这个影响,可以试下this.sprite.spriteFrame.getTexture().packable = false;
圆角头像Shader在皮皮的脚手架中也有,可以去翻下https://gitee.com/ifaswind/eazax-ccc

尺寸大小写了吗

这个确实是正解啊,多谢。我图片给了 false 了,没想到 new 的时候默认又给回 true 了 :rofl:
我现在的写法是这样,给大家参考:

   cc.assetManager.loadRemote(avatar, { ext: ".png" }, (err, texture: cc.Texture2D) => {
      texture.packable = false; // 主要是这句
      this.playerHeadImg.spriteFrame = new cc.SpriteFrame(texture);
    });
1赞

替换材质会打断合批吗?

shader 不同,应该就会打断

一个ps就搞定了,搞这么复杂?

我有个问题,就是用远程下载的图片mSprite.spriteFrame = new cc.SpriteFrame(texture);替换设置圆角shader的那个纹理后,圆角没有生效,不知道是什么原因