使用shader packable

为什么用了shader packable就不能用?
因为打入合图之后UV变化了?而shader里还是0-1?

是的,需要算出在合图后在图集里的UV

算出来后呢?重新传入?

转换一下uv就行了

如何转换uv

shader中使用v_uv0进行采样;
可以自己定义一个变量 v_uv1;
vec2 v_uv1 = vec2(ox + w * v_uv0.x, oy + h * v_uv0 * y);
ox,oy,为该texture在打包后的图集中,的起始位置(左上角, 范围0-1);
w,h为该texture的宽高/打包后图集的宽高;
之后把effect中 用到 u_uv0的地方全部改成v_uv1;完成uv的转换

1赞

问题 打包是系统自动生成 我也不知道具体这个图片打包到了什么位置的。

最快的方法应该是,参与shader采样的图片,全部取消勾选image

可是想合图

大佬,在creator编辑器里,能方便的看到每个图合成后所在的位置吗?
还是说需要导到外部软件比如PS里自己去量?

packable in atlas yourself first.
Don’t use auto atlas