Abd*_*nem 5 iphone opengl-es pvrtc
我有一个很大的png纹理4096x4096,我需要加载内存中的部分内容.我已经将大png纹理拆分为16个1024x1024磁贴,然后将它们转换为PVR压缩文件.
问题是当我绘制这些图块时,图块之间的边缘与png不同.所以,我认为如果有一个工具来生成一个4096x4096 PVR纹理然后将其分成16个1024x1024 PVR磁贴?
通过PVR(这是一种支持多种纹理类型的更通用的纹理文件格式)我假设你的意思是PVRTC?
PVRTC在传统意义上不是基于块的,例如,在ETC或S3TC中,纹理被分成4×4像素块,并且每个块被单独压缩.相反,它试图在重叠的像素区域之间共享数据.它(也有点)假设纹理可能是平铺的,例如,极左边缘区域实际上与极右手共享信息(并且类似地用于顶部和底部).除非边缘完全不同,否则这通常不是太大的问题.
如果您因此尝试将已经压缩的纹理细分为较小的区域,那么它就不会起作用,因为压缩器已经假设大图像中共享的内容,这与小图像不同.
至于分别压缩每个部件,听起来每个单独部件的边缘可能完全不同.我唯一能想到的就是把你的原始纹理切成(例如)(2 ^ N -4)x(2 ^ N -4)单位但是将它们居中存储在2 ^ N*2 ^ N纹理中你所在的地方使用原始像素的副本填充2像素边框.然后,将纹理映射设置为仅使用中心(2 ^ N -4)x(2 ^ N -4)区域.希望这应该减少不连续性假象.
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |