Iphone 有没有工具可以将PVR纹理拆分为一组瓷砖?

Iphone 有没有工具可以将PVR纹理拆分为一组瓷砖?,iphone,opengl-es,pvrtc,Iphone,Opengl Es,Pvrtc,我有一个大的png纹理4096x4096,我需要在内存中加载部分。我已经将大png纹理分割为16个1024x1024瓷砖,然后将它们转换为PVR压缩文件 问题是,当我绘制这些瓷砖时,瓷砖之间的边与png不同。因此,我认为如果有一个工具生成一个4096x4096 PVR纹理,然后将其拆分为16个1024x1024 PVR瓷砖???按PVR(这是一种更通用的纹理文件格式,支持多种纹理类型),我想你是指PVRTC PVRTC不是传统意义上的基于块的,比如说,使用ETC或S3TC,纹理被分割成4x4像素

我有一个大的png纹理4096x4096,我需要在内存中加载部分。我已经将大png纹理分割为16个1024x1024瓷砖,然后将它们转换为PVR压缩文件

问题是,当我绘制这些瓷砖时,瓷砖之间的边与png不同。因此,我认为如果有一个工具生成一个4096x4096 PVR纹理,然后将其拆分为16个1024x1024 PVR瓷砖???

按PVR(这是一种更通用的纹理文件格式,支持多种纹理类型),我想你是指PVRTC

PVRTC不是传统意义上的基于块的,比如说,使用ETC或S3TC,纹理被分割成4x4像素块,每个块分别被压缩。相反,它试图在一组重叠的像素邻域之间共享数据。它还(某种程度上)假设纹理可能是平铺的,因此,例如,最左侧边缘区域实际上与最右侧(顶部和底部也是如此)共享信息。这通常不是太大的问题,除非边缘完全不同

如果你因此试图将一个已经压缩的纹理细分为更小的区域,它将不起作用,因为压缩器已经对大图像中共享的内容做出了假设,这与小图像不同


至于单独压缩每一块,听起来每一块的边缘可能会有很大的不同。我能想到的唯一一件事就是把你的原始纹理分割成,比如说,(2^N-4)x(2^N-4)个单位,但是把它们集中存储在2^N*2^N纹理中,在那里你用原始像素的副本填充2像素的边框。然后将纹理贴图设置为仅使用中心(2^N-4)x(2^N-4)区域。希望这样可以减少不连续的人工制品。

除了添加边界,难道没有其他方法可以修复边缘出血吗?我的问题是我需要power-of-2纹理,我不能添加边框和缩放纹理,因为这将意味着失去一些质量。PVRTC2本来可以解决这个问题,但是,尽管它在PowerVR硬件中出现了,可能有十年了,但在某些流行的设备中没有公开。我还认为你有1:1的像素到纹理的采样,你没有使用双线性采样,已经非常仔细地对齐了你的纹理坐标,或者使用了钳制。我会考虑一下,但如果你能在PowerVR内部论坛上提问,也可能会有所帮助。谢谢!是的,我使用的是夹紧模式,所以我希望看到没有包装。我也在PowerVR论坛上发布了这个问题: