求助,我写了一个shader,在web端的uv采样是0-1,但是打包构建后,uv就不是0-1了。


打包后,这个图片被合并到一张大图上去了,导致这个图片采样的位置错误,想要的效果跟没打图集时不一致。
我能通过什么方法取到原图的uv吗?或者说只采样原图的uv?
还是说这张图就不参与合图?

一般用到了着色器的纹理不参与合图,合图会导致uv坐标漂移。你可以想象单张A纹理,采样一定是准确的。因为他的内存位置是固定的。例如0x0000-0x0010是A纹理的uv数据。但是参与合图后,A的纹理和其他的纹理合并变成了一个大纹理,这个时候A纹理和其他纹理在同一段内存空间0x0000-0x1000。这个时候如果你直接采样是拿不到A的uv的。除非你有能力告诉gpuA的uv在内存的哪儿。

如果手动合图,那么你可以通过传参告诉着色器,A的纹理漂移到哪儿了,然后进行相对采样就行了。如果是动态合图,那就没办法了。

好的谢谢大佬

取消勾选合批