MK~下~~~~~~~
我用了这位大神的代码,而且图片给入的是长方形的,是这样用的:
将代码里面的这两句:
float rx = abs(uv.x) - (0.5 - edge);
float ry = abs(uv.y) - (0.5 - edge);
多加入一些参数即可:
float rx = abs(uv.x * 1.05) - (0.5 - edge);
float ry = abs(uv.y * 1.1887 * 1.05) - (0.5 - edge);
注:1.1887是我给入的图片的高除以宽的商 (你根据需要填写,如果是宽比高大的,那用宽除以高的商乘到rx那一行即可)
1.05是我需要继续往里面多裁掉一些(因为我给的图片两边有透明像素)
我的目的是裁成圆的。edge参数依旧给0.5。
我使用你的demo工程,加了几个sprite,感觉不太稳定,就像下图的截图一样
好像编辑器里是对的,跑起来就不对了,貌似好像是半径算的是对角线了。另外,已经是圆角的图,也是这样的问题。
有时间帮看下吧,我看了effect文件,没看懂算法。多谢
原来是直角的图也有问题
可以了,多谢。
你这个方案比基于mask的效率高多了。顶起!
tql,sdl
请问如果使用网络图片的话,显示会有问题,锚点变成右下角的,只显示了四分之一,有大佬知道怎么改吗? let imgUrl = ‘https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2534506313,1688529724&fm=26&gp=0.jpg’; 随便在网上找的一张图。
cc.loader.load({ url: url, type: "png" }, (err: any, texture: cc.Texture2D) => {
texture.packable = false; // 关键在这句
const spriteFrame = new cc.SpriteFrame(texture);
this.avatarSpr.spriteFrame = spriteFrame;
}
});
非常好使,谢谢大佬。
大佬 长方形的图 想要圆角是正圆的 该怎么改
论坛里有其他人实现了, 你参考参考
厉害了,之前就是用mask切割,也是3个drawcall,就是想要shader这种效果 ,给你点个赞
markmarkmarkmarkmark
Mark,先点赞收藏再看
嘿额呵呵呵呵呵
可以合批吗
不支持合批
mark!的
mask!