一般用到了着色器的纹理不参与合图,合图会导致uv坐标漂移。你可以想象单张A纹理,采样一定是准确的。因为他的内存位置是固定的。例如0x0000-0x0010是A纹理的uv数据。但是参与合图后,A的纹理和其他的纹理合并变成了一个大纹理,这个时候A纹理和其他纹理在同一段内存空间0x0000-0x1000。这个时候如果你直接采样是拿不到A的uv的。除非你有能力告诉gpuA的uv在内存的哪儿。
如果手动合图,那么你可以通过传参告诉着色器,A的纹理漂移到哪儿了,然后进行相对采样就行了。如果是动态合图,那就没办法了。
好的谢谢大佬
取消勾选合批
1赞
https://blog.csdn.net/Yishionwang/article/details/121877326?spm=1011.2415.3001.5331
这是我当年偏要用图集里面的图的uv,研究之后写的文章。
动态合图的情况确实麻烦。但是当用的时候,动态图已经合好了,也是能得到正确结果的。(延迟的一点点时间传入数据,我都觉得不靠谱)texturepacker合好的图里面用是可以的,但是不能允许旋转,旋转的图的坐标没有研究过。
1赞
